mongodb 常用语句(更新操作)

一、update()命令

db.collection.update( criteria,objNew,upsert,multi )

criteria:update的查询条件,类似sql update查询内where后面的

objNew :update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的

upsert :这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。

multi  :mongodb默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。

例:

db.app.update({"downlaod_count":2},{$set:{"name":"OK"}},false,true);

扫描二维码关注公众号,回复: 1290397 查看本文章

db.app.update({"download_count":{$gt:1}},{$set:{"name":"OK"}}); 只更新了第一条记录

db.app.update({"download_count":{$gte:3}},{$set:{"name":"OK"}},false,true ); 全更新了

db.app.update({"download_count":{$lt:4}},{$set:{"name":"OK"}},true,false ); 只加进去了第一条

db.app.update({"download_count":{$lte:5}},{$set:{"name":"OK"}},true,true ); 全加进去了

db.app.update({"download_count":{$in:[1,2,3]}},{$inc:{"download_count":1}},false,true );全更新了

db.app.update({"download_count":{$nin:[1,2,3]}},{$inc:{"download_count":1}},false,false );只更新了第一条

二、mongodb的更新操作符:

1) $inc

用法:{ $inc:{field:value}} 对一个数字字段field增加value

db.app.update({"id":15},{$inc:{"download_count":1}});

db.app.update({"id":15},{$inc:{"download_count":-1}});

2) $set

用法:{ $set:{field:value}} 相当于sql的set field = value,全部数据类型都支持$set

db.app.update({"id":15},{$set:{"test1":"testv1","name":"testv2","test3":"testv3","test4":"testv4"}});

3) $unset

用法:{ $unset:{field:1}} 删除字段了

db.app.update({"id":15},{$unset:{"test1":1}});

4) $push

用法:{ $push:{field:value}}

把value追加到field里面去,field一定要是数组类型才行,如果field不存在,会新增一个数组类型加进去

db.app.update({"id":15},{$set:{"test1":["aaa","bbb"]}});

db.app.update({"id":15},{$push:{"test1": "ccc"}});

db.app.update({"id":15},{$push:{"name": "ccc"}});

db.app.update({"id":15},{$push:{"test1": ["ddd","eee"]}});

5) $pushAll

用法:{ $pushAll:{field:value_array}}

同$push,只是一次可以追加多个值到一个数组字段内

db.app.update({"id":15},{$pushAll:{"test1": ["fff","ggg"]}});

6) $addToSet

用法:{ $addToSet:{field:value}}

增加一个值到数组内,而且只有当这个值不在数组内才增加。例:

db.app.update({"id":15},{$addToSet:{"test1": {$each:["444","555"]}}});

db.app.update({"id":15},{$addToSet:{"test1": ["444","555"]}});

7) $pop

用法:

删除最后一个值:{ $pop:{field:1}}删除第一个值:{ $pop:{field:-1}}

注意,只能删除一个值,也就是说只能用1或-1,而不能用2或-2来删除两条。mongodb 1.1及以后的版本才可以用,例:

8) $pull

用法:$pull:{field:value}}

从数组field内删除一个等于value值。例:

> db.app.update({"id":15},{$pull:{"test1": "ggg"}});

9) $pullAll

用法:{ $pullAll:{field:value_array}}

同$pull,可以一次删除数组内的多个值

db.app.update({"id":15},{$pullAll:{"test1": [ "ccc","fff" ]}});

9) $rename

用法:{ $rename:{field:new_filed}}

重命名字段

db.app.update({"id":15},{$rename:{"test1":"bat" }});

猜你喜欢

转载自871421448.iteye.com/blog/1889289