文章正文
mongodb--update高级用法
【文章】2020-04-23
简介mongodb--update高级用法
配合update使用的函数
$set 修改某列的值
$unset 删除某个列
$rename 重命名某个列
$inc 增长某个列
$setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段eg:
db.stu.update(
{name:'wukong'},
{$set:{name:'dzsf'},
$unset:{spike:1}, // 注意这个1是要删除的意思
$rename:{sex:'gender'},
$inc:{age:16}});set
db.mytest.update({"age":20},{"$set":{"age":25}})
db.mytest.find()
{"_id":ObjectId("567677824977e7f9805db208"),"name":"jack","age":25}inc => Interlocked.Add
db.mytest.find()
{ "_id" : ObjectId("567677824977e7f9805db208"), "name" : "jack", "age" : 26 }
db.mytest.update({"age":25},{"$inc":{"age":10}})
db.mytest.find()
{ "_id" : ObjectId("567677824977e7f9805db208"), "name" : "jack", "age" : 26 }
db.mytest.update({"age":26},{"$inc":{"age":10}})
db.mytest.find()
{ "_id" : ObjectId("567677824977e7f9805db208"), "name" : "jack", "age" : 36 }upsert
如果没有匹配的行,就直接插入该行
db.news.upsert({id:10},{x:10,y:11},{upsert:true});结合setOnInsert用法,如果找不到id=10的文档,就插入一个修改后的文档,另外,还要加上setOnInsert里面的元素内容
db.news.upsert({id:10},{$set:{x:10,y:11},$setOnInsert:{gender:'male'},{upsert:true}});push => push array
db.mytest.find()
{ "_id" : ObjectId("567677824977e7f9805db208"), "address" : [ "shanghai" ], "age" : 36, "name" : "jack" }
db.mytest.update({"name":"jack"},{"$push":{"address":"beijing"}})
db.mytest.find()
{ "_id" : ObjectId("567677824977e7f9805db208"), "address" : [ "shanghai", "beijing" ], "age" : 36, "name" : "jack" }pop => pop array
db.mytest.update({"name":"jack"},{"$pop":{"address":"beijing"}})
db.mytest.find()
{ "_id" : ObjectId("567677824977e7f9805db208"), "address" : [ "shanghai" ], "age" : 36, "name" : "jack" }multi
指的是修改多行(默认情况下,查询表达式命中多行只修改一行,如果想一次修改多行,就要把multi设置为true)
db.news.update({age:21},{$set:{age:22}},{multi:true});addToSet
【就是数组中不可能存在在重复的字符串或者数字】
【自动去重的功能】首先我们用 push 做一个演示,无法有"去重“的功能。
db.mytest.update({"age":36},{"push":{"address":"shanghai"}})
db.mytest.find()
{ "_id" : ObjectId("567677824977e7f9805db208"), "address" : [ "shanghai", "shanghai" ], "age" : 36, "name" : "jack" }addToSet自动排除演示
db.mytest.update({"age":36},{"$addToSet":{"address":"shanghai"}})
db.mytest.find()
{ "_id" : ObjectId("567677824977e7f9805db208"), "address" : [ "shanghai" ], "age" : 36, "name" : "jack" }
打赏支持
感谢您的支持,加油!
打开微信扫码打赏,你说多少就多少
找书费时,联系客服快速获取!
在线客服8:30-22:30,若离线请留言!
获取教程,请联系在线客服!
在线客服8:30-22:30,若离线请留言!
热门阅读
-
然而,很美 爵士乐之书 (英)杰夫·戴尔GeoffDyer著;孔亚雷译 杭州:浙江文艺出版社 PDF 7533937850 2013.pdf
然而,很美 爵士乐之书 (英)杰夫·戴尔GeoffDyer著;孔亚雷译 杭州:浙江文艺出版社 PDF 7533937850 2013.pdf ...
-
红字 (美)霍桑著;姚乃强译 南京:译林出版社 PDF 7805679193 2012.pdf
红字 (美)霍桑著;姚乃强译 南京:译林出版社 PDF 7805679193 2012.pdf ...
-
一刀能割出多少爱 卓左右著 北京:光明日报出版社 PDF 7802062020 2006.pdf
一刀能割出多少爱 卓左右著 北京:光明日报出版社 PDF 7802062020 2006.pdf ...
-
春秋来信 张枣著 北京:文化艺术出版社 PDF 7503917253 1998.pdf
春秋来信 张枣著 北京:文化艺术出版社 PDF 7503917253 1998.pdf ...
-
历史在女人面前拐弯 中国卷 影响中国历史的16位女性 王本刚主编 北京:金城出版社 PDF 7800848221 2006.pdf
历史在女人面前拐弯 中国卷 影响中国历史的16位女性 王本刚主编 北京:金城出版社 PDF 7800848221 2006.pdf ...
-
清朝第一帝-努尔哈赤 阎崇年著 北京:华文出版社 PDF 7507519600 2006.pdf
清朝第一帝-努尔哈赤 阎崇年著 北京:华文出版社 PDF 7507519600 2006.pdf ...
-
保护公众健康 美国食品药品百年监管历程 (美)菲利普·希尔茨(Philip J. Hilts)著;姚明威译 北京:中国水利水电出版社 PDF 7508432037 2006.pdf
保护公众健康 美国食品药品百年监管历程 (美)菲利普·希尔茨(Philip J. Hilts)著;姚明威译 北京:中国水利水电出版社 PDF 7508432037 2006.pdf ...
-
大毒枭自白 与罂粟花一起盛开或凋谢 胡玥著 开封:河南大学出版社 PDF 7810913476 2005.pdf
大毒枭自白 与罂粟花一起盛开或凋谢 胡玥著 开封:河南大学出版社 PDF 7810913476 2005.pdf ...
-
9a班的恐吓事件 (德)(S.沃尔夫)Stefan Wolf著;李晶译 北京:北京少年儿童出版社 PDF 7530106988 1999.pdf
9a班的恐吓事件 (德)(S.沃尔夫)Stefan Wolf著;李晶译 北京:北京少年儿童出版社 PDF 7530106988 1999.pdf ...
-
汉语现代音韵学 杨剑桥著 上海:复旦大学出版社 PDF 7309016254 出版时间:1996.pdf
汉语现代音韵学 杨剑桥著 上海:复旦大学出版社 PDF 7309016254 出版时间:1996.pdf ...