Mongodb中update操作

MongoDB中文档存入数据库后用update方法更新,update方法有两个参数
update(args1,args2)
args1是指查询文档的条件;
args2是指对查询到的文档进行什么样的修改;

文档替换

1
2
3
4
5
6
7
8
9
10
11
12
13
14
> db.test.find()
{ "_id" : ObjectId("58f6de33882977fedfd4a6af"), "name" : "zhang3" }
{ "_id" : ObjectId("58f6de58882977fedfd4a6b0"), "name" : "test", "id" : 111 }
{ "_id" : ObjectId("58f6de59882977fedfd4a6b1"), "name" : "zhang3", "id" : 111 }

> db.test.update({"name":"zhang3","id":111},{"id":222})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })

> db.test.find()
{ "_id" : ObjectId("58f6de33882977fedfd4a6af"), "name" : "zhang3" }
{ "_id" : ObjectId("58f6de58882977fedfd4a6b0"), "name" : "test", "id" : 111 }
{ "_id" : ObjectId("58f6de59882977fedfd4a6b1"), "id" : 222 }


观察结果,文档替换将满足条件的行的记录修改成了 {“id”:222} ,而不是只更新了一个字段

修改器替换(局部替换)

1
2
3
4
5
6
7
8
9
10
11
12
13

> db.test.find()
{ "_id" : ObjectId("58f6de33882977fedfd4a6af"), "name" : "zhang3" }
{ "_id" : ObjectId("58f6de58882977fedfd4a6b0"), "name" : "test", "id" : 111 }
{ "_id" : ObjectId("58f6de59882977fedfd4a6b1"), "id" : 222, "name" : "lisi" }

> db.test.update({"id":222},{$set:{"name":"lisssi"}})
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.test.find()
{ "_id" : ObjectId("58f6de33882977fedfd4a6af"), "name" : "zhang3" }
{ "_id" : ObjectId("58f6de58882977fedfd4a6b0"), "name" : "test", "id" : 111 }
{ "_id" : ObjectId("58f6de59882977fedfd4a6b1"), "id" : 222, "name" : "lisssi" }

使用$set更新某个字段。

mongdb学习地址

菜鸟教程学习mongdb-update