如何解决 MongoDb 中的“多更新仅适用于 $ 运算符”的问题?
你可以为此使用 $set 运算符。语法如下所示 −
db.yourCollectionName.update({ }, {'$set': "yourFieldName": "yourValue" }, false, true);
为了理解上述语法,我们创建一个具有文档的集合。用于创建带有文档的集合的查询如下 −
> db.unconditionalUpdatesDemo.insertOne({"ClientName":"Larry","ClientAge":24}); { "acknowledged" : true, "insertedId" : ObjectId("5c8eb7372f684a30fbdfd557") } > db.unconditionalUpdatesDemo.insertOne({"ClientName":"Mike","ClientAge":26}); { "acknowledged" : true, "insertedId" : ObjectId("5c8eb73f2f684a30fbdfd558") } > db.unconditionalUpdatesDemo.insertOne({"ClientName":"Sam","ClientAge":27}); { "acknowledged" : true, "insertedId" : ObjectId("5c8eb7462f684a30fbdfd559") } > db.unconditionalUpdatesDemo.insertOne({"ClientName":"Carol","ClientAge":29}); { "acknowledged" : true, "insertedId" : ObjectId("5c8eb7502f684a30fbdfd55a") }
使用 find() 方法从某个集合显示所有文档。查询如下 −
> db.unconditionalUpdatesDemo.find().pretty();
以下是输出 −
{ "_id" : ObjectId("5c8eb7372f684a30fbdfd557"), "ClientName" : "Larry", "ClientAge" : 24 } { "_id" : ObjectId("5c8eb73f2f684a30fbdfd558"), "ClientName" : "Mike", "ClientAge" : 26 } { "_id" : ObjectId("5c8eb7462f684a30fbdfd559"), "ClientName" : "Sam", "ClientAge" : 27 } { "_id" : ObjectId("5c8eb7502f684a30fbdfd55a"), "ClientName" : "Carol", "ClientAge" : 29 }
以下是无条件更新的查询 −
> db.unconditionalUpdatesDemo.update({ }, {'$set': {"ClientName": "Robert" }}, false, true); WriteResult({ "nMatched" : 4, "nUpserted" : 0, "nModified" : 4 })
让我们使用 find() 从某个集合查看文档。查询如下 −
> db.unconditionalUpdatesDemo.find().pretty();
以下是输出 −
{ "_id" : ObjectId("5c8eb7372f684a30fbdfd557"), "ClientName" : "Robert", "ClientAge" : 24 } { "_id" : ObjectId("5c8eb73f2f684a30fbdfd558"), "ClientName" : "Robert", "ClientAge" : 26 } { "_id" : ObjectId("5c8eb7462f684a30fbdfd559"), "ClientName" : "Robert", "ClientAge" : 27 } { "_id" : ObjectId("5c8eb7502f684a30fbdfd55a"), "ClientName" : "Robert", "ClientAge" : 29 }
Advertisement 广告