1.修改方法
一 语法 里面有三个大的语句:一个是查询条件;一个是修改字段;一个是其他参数(目前就有两个) db.table.update( 条件, 修改字段, 其他参数 ) update db1.t1 set id=10 where name="egon";#这是sql语句的更新使用 db.table.update( {},#这是查询条件 {"age":11}, { "multi":true,#这是删除查询到的所有数据 "upsert":true#这是如果找不到这个数据,就新插入 } ) 1、update db1.user set age=23,name="武大郎" where name="wupeiqi"; #覆盖式更新就是替换掉查询到的数据,只能替换掉一个查询数据 db.user.update( {"name":"wupeiqi"}, {"age":23,"name":"武大郎"} ) #局部修改:$set就是只更改这里面显示的字段。 db.user.update( {"name":"alex"}, {"$set":{"age":73,"name":"潘金莲-alex"}} ) #改多条 db.user.update( {"_id":{"$gte":1,"$lte":2}}, {"$set":{"age":53,}}, {"multi":true} ) #有则修改,无则添加 db.user.update( {"name":"EGON"}, {"$set":{"name":"EGON","age":28,}}, { "multi":true, "upsert":true }#这个就是参数 ) #修改嵌套文档 db.user.update( {"name":"潘金莲-alex"}, {"$set":{"addr.country":"Japan"}}#如果需要查询到里面有嵌套的数据用.就可以查到。 ) #修改数组 db.user.update( {"name":"潘金莲-alex"}, {"$set":{"hobbies.1":"Piao"}}#如果需要查询到里面有嵌套的数据用.就可以查到。 ) #删除字段 db.user.update( {"name":"潘金莲-alex"}, {"$unset":{"hobbies":""}}#删除一个字段 ) 2、$inc db.user.update( {}, {"$inc":{"age":1}},#增加用的,如果是正数就说明是增加,如果是负数,就是减少 {"multi":true} ) db.user.update( {}, {"$inc":{"age":-10}}, {"multi":true} ) 3、$push, $pop $pull#对某个字段的添加或删除 db.user.update( {"name":"yuanhao"}, {"$push":{"hobbies":"tangtou"}},#对某一个字段是数组添加一个值 {"multi":true} ) db.user.update( {"name":"yuanhao"}, {"$push":{"hobbies":{"$each":["纹身","抽烟"]}}},#对某一个字段是数组添加多个值别忘了用$each {"multi":true} ) #从头删-1,从尾删1 db.user.update( {"name":"yuanhao"}, {"$pop":{"hobbies":-1}},#从开始删除 {"multi":true} ) db.user.update( {"name":"yuanhao"}, {"$pop":{"hobbies":1}},#从后面删除 {"multi":true} ) #按条件删 db.user.update( {"name":"yuanhao"}, {"$pull":{"hobbies":"纹身"}},#"$pull" 把符合条件的统统删掉,而$pop只能从两端删 {"multi":true} ) #3、$addToSet#添加数据,不重复添加 db.t3.insert({"urls":[]}) db.t3.update( {}, {"$addToSet":{"urls":{"$each":[ "http://www.baidu.com", "http://www.baidu.com", "http://www.baidu.com", "http://www.baidu.com", "http://www.baidu.com" ]}}}, {"multi":true} )