MongoDB笔记(三):Document 数据插入、删除、更新
实例数据库caliven、集合users
一、插入文档
1.插入文档
db.[documentName].insert({})
2.批量插入文档 、shell 这样执行是错误的db.[documentName].insert([{},{},{},……..]) shell不支持批量插入,
想完成批量插入可以用mongo的应用驱动或是shell的for循环:
for(var i=0; i<=10;i++){
db.[documentName].insert({name:i})
}
3.Save操作:save操作和insert操作区别在于当遇到_id相同的情况下,save完成保存操作,insert则会报错。
二、删除文档
1.删除列表中所有数据
db.[documentName].remove()
集合的本身和索引不会别删除
2.根据条件删除
db.[documentName].remove({})
删除集合users中name等于Tom的纪录 db.users.remove({name:”Tom”})
3.小技巧:如果你想清除一个数据量十分庞大的集合,直接删除该集合并且重新建立索引的办法,比直接用remove的效率和高很。
三、更新文档
1.强硬的文档替换式更新操作
db.[documentName].update({查询器},{修改器})
强硬的更新会用新的文档代替老的文档
2.主键冲突的时候会报错并且停止更新操作
因为是强硬替换当替换的文档和已有文档ID冲突的时候则系统会报错
3.insertOrUpdate操作
目的:查询器查出来数据就执行更新操作,查不出来就替换操作
做法:db.[documentName].update({查询器},{修改器},true)
4.批量更新操作
默认情况当查询器查询出多条数据的时候默认就修改第一条数据
如何实现批量修改:db.[documentName].update({查询器},{修改器},false, true)
5.使用修改器来完成局部更新操作
| 修改器名称 |
语法 |
案例 |
| $set |
{$set:{field: value}} |
{$set:{name:”uspcat”}} |
|
它用来指定一个键值对,如果存在键就进行修改不存在则进行添加. |
||
| $inc |
{ $inc : { field : value } } |
{ $inc : { "count" : 1 } } |
|
只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作. |
||
| $unset |
{ $unset : { field : 1} } |
{ $unset : { “name":1 } |
| 他的用法很简单,就是删除指定的键 | ||
| $push |
{ $push : { field : value } } |
{ $push : { books:”JS”} |
|
1.如果指定的键是数组增追加新的数值 2.如果指定的键不是数组则中断当前操作Cannot apply $push/$pushAll modifier to non-array 3.如果不存在指定的键则创建数组类型的键值对 |
||
| $pushAll |
{ $pushAll : { field : array } } |
{ $push : { books:[“EXTJS”,”JS”]} |
|
用法和$push相似他可以体谅添加数组数据 |
||
| $addToSet |
{ $addToSet: { field : value } } |
{ $addToSet: { books:”JS”} |
|
目标数组存在此项则不操作,不存在此项则加进去 |
||
| $pop |
{$pop:{field: value}} |
{$pop:{name:1}} {$pop:{name:-1}} |
|
从指定数组删除一个值1删除最后一个数值,-1删除第一个数值 |
||
|
$pull |
{ $pull: { field : value } } |
{ $pull : { “book" : “JS” } } |
|
删除一个被指定的数值 |
||
|
$pullAll |
{ $pullAll: { field : array} } |
{ $pullAll: { “name":[“JS”,”JAVA”] } |
|
一次性删除多个指定的数值 |
||
| $ |
{ $push : { field : value } } |
{ $push : { books:”JS”} |
|
1.数组定位器,如果数组有多个数值我们只想对其中一部分进行操作我们就要用到定位器($) 例子: 例如有文档{name:”YFC”,age:27,books:[{type:’JS’,name:”EXTJS4”},{type:”JS”,name:”JQUERY”},{type:”DB”,name:”MONGODB”}]} 我们要把type等于JS的文档增加一个相同的作者author是USPCAT 办法: db.text.update({"books.type":"JS"},{$set:{"books.$.author":"USPCAT"}}) |
||
MongoDB笔记(三):Document 数据插入、删除、更新的更多相关文章
- 09Microsoft SQL Server 表数据插入,更新,删除
Microsoft SQL Server 表数据插入,更新,删除 向表中插入数据 INSERT INTO insert into tb1 values(0004,'张凤凤') insert into ...
- 09Oracle Database 数据表数据插入,更新,删除
Oracle Database 数据表数据插入,更新,删除 插入数据 Insert into table_name(column) values(values); insert into studen ...
- 定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表
最近项目中有一种需求: 大致需求是这样的 通过给定的 用户名和密码 要定时从远程的数据库中取数据,然后把取出来的数据插入或更新本地的oracle数据库的表 项目的结构式struts1 hibernat ...
- .NET 百万级 大数据插入、更新 ,支持多种数据库
功能介绍 (需要版本5.0.44) 大数据操作ORM性能瓶颈在实体转换上面,并且不能使用常规的Sql去实现 当列越多转换越慢,SqlSugar将转换性能做到极致,并且采用数据库最佳API 操作数据库 ...
- MYSQL数据插入、更新及删除
上文讲到创建数据表,本文介绍create table后的数据插入: 一.通过insert into ...values...插入 insert into tablename (column1,colu ...
- MySQL-快速入门(6)连接查询、子查询、正则表达式查询、数据的插入删除更新
1.内连接查询:inner join ... on 只有满足条件的记录才能够出现在结果关系中,即完全相等.自连接查询是一种特殊的内连接查询. 2.外连接查询: 1>左外连接 / 左连接:返回包括 ...
- mongodb笔记(三)
1.删除文档(remove()函数) 在执行remove()函数前先执行find()命令来判断执行的条件是否正确,这是一个比较好的习惯. 语法: db.collection.remove( <q ...
- SQL SERVER数据库三种数据插入方式
数据插入:INSERT INTO A(CBM,CMC) VALUES('1','测试')--单条数据插入INSERT INTO A(CBM,CMC)SELECT '1','测试'--单条数据插入INS ...
- MYSQL初级学习笔记三:数据的操作DML!(视频序号:初级_24,25,36)
知识点五:数据的操作DML(24,25,36) 插入数据: --测试插入记录INSERT CREATE TABLE IF NOT EXISTS user13( id TINYINT UNSIGNED ...
随机推荐
- 转载] magento 产品数据表结构
原文地址:http://blog.sina.com.cn/s/blog_9302097a010120l4.html 数据库-- 产品数据库表结构分析 product 1数据库实体表:catalog_p ...
- ASP.NET中怎样将页面设为首页,加入收藏
1.文字js脚本事件:<span onClick="var strHref=window.location.href;this.style.behavior=’url(#default ...
- eclipse中的aptana插件的安装
先下载 aptana插件包 我安装的eclipse版本是 indido版本号的. 三步骤: 1.将aptana解压到eclipse的目录下 2.打开eclipse目录下的dropins文件,新建一 ...
- flutter 频道切换
https://github.com/flutter/flutter/wiki/Flutter-build-release-channels 频道说明页 https://flutter.dev/doc ...
- 2017 ACM-ICPC 亚洲区(青岛赛区)网络赛 1009
#include<cmath> #include<set> #include<list> #include<deque> #include<map ...
- 10、Flask实战第10天:视图使用装饰器
在实际开发中,我们有时候会用到自己定义装饰器并应用到函数视图或者类视图里面:比如:我们要想进入个人中心页面,首先要验证你是否登录,否则进不去,下面我们来模拟这个场景 定义一个装饰器 from func ...
- RPD Volume 168 Issue 4 March 2016 评论2
Influence of the phantom shape (slab, cylinder or Alderson) on the performance of an Hp(3) eye dosem ...
- py thon 多线程(转一篇好文章)
http://www.cnblogs.com/fnng/p/3670789.html
- Maven / Nexus 的用法和经验
Maven / Nexus 的用法和经验
- 【博弈论】【SG函数】【找规律】Gym - 101147A - The game of Osho
以后这种题还是不能空想,必须打个表看看,规律还是比较好找的……具体是啥看代码.用SG函数暴力的部分就不放了. #include<cstdio> using namespace std; i ...