解决 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 }