2、主键冲突的时候会报错并且停止更新操作因为是强硬替换当替换的文档和已有文档ID冲突的时候则系统会报错
4、批量更新操作默认情况当查询器查询出多条数据的时候默认就修改第一条数据如何实现批量修改
5、使用修改器来完成局部更新操作| 名称 | 语法 | 案例 | 备注说明 |
| $set | {$set:{field:value}} | {$set:{name:”uspcat”}} | 它用来指定一个键值对,如果存在键就进行修改不存在则进行添加. |
| $inc | {$inc:{field:value}} | {$inc:{"count":1}} | 只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作. |
| $unset | {$unset:{filed:1}} | { $unset : { “name":1 } | 他的用法很简单,就是删除指定的键 |
| $push | { $push : { field : value } } | { $push : { books:”JS”} | 1.如果指定的键是数组增追加新的数值2.如果指定的键不是数组则中断当前操作Cannot apply $push/$pushAll modifier to non-array3.如果不存在指定的键则创建数组类型的键值对 |
| $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:{filed:value}} | {$pull:{"book":"JS"}} | 删除一个被指定的值 |
| $pullAll | {$pullAll:{filed: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"}}) |
runCommand可以执行mongoDB中的特殊函数 findAndModify就是特殊函数之一他的用于是返回update或remove后的文档 runCommand({“findAndModify”:”processes”, query:{查询器}, sort{排序}, new:true update:{更新器}, remove:true }).value ps = db.runCommand({ "findAndModify":"persons", "query":{"name":"text"}, "update":{"$set":{"email":"1221"}}, "new":true}).valuedo_something(ps)http://www.cppblog.com/byc/archive/2011/07/15/151063.aspx
上一篇:MongoDB笔记四——查询操作
下一篇:MongoDB笔记二