如果不同的key等于MongoDB中的某个值,是否更新key值?
让我们创建一个包含文档的集合-
> db.demo196.insertOne( ... { ... ... "Id" : "101", ... "details" : [ ... { ... "FirstName" : "Chris", ... "LastName" : "Brown", ... "Score" : 45 ... }, ... { ... "FirstName" : "David", ... "LastName" : "Miller", ... "Score" : 87 ... }, ... { ... "FirstName" : "John", ... "LastName" : "Doe", ... "Score" : 56 ... } ... ] ... } ...); { "acknowledged" : true, "insertedId" : ObjectId("5e3af6b103d395bdc21346d7") }
在find()方法的帮助下显示集合中的所有文档-
> db.demo196.find();
这将产生以下输出-
{ "_id" : ObjectId("5e3af6b103d395bdc21346d7"), "Id" : "101", "details" : [ { "FirstName" : "Chris", "LastName" : "Brown", "Score" : 45 }, { "FirstName" : "David", "LastName" : "Miller", "Score" : 87 }, { "FirstName" : "John", "LastName" : "Doe", "Score" : 56 } ] }
以下是更新键值的查询,其中不同的键等于某个值-
> db.demo196.update({"details":{"$elemMatch":{"FirstName" : "David", "LastName" : "Miller"}}}, ... {"$set":{"details.$.Score":98}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
在find()方法的帮助下显示集合中的所有文档-
> db.demo196.find();
这将产生以下输出-
{ "_id" : ObjectId("5e3af6b103d395bdc21346d7"), "Id" : "101", "details" : [ { "FirstName" : "Chris", "LastName" : "Brown", "Score" : 45 }, { "FirstName" : "David", "LastName" : "Miller", "Score" : 98 }, { "FirstName" : "John", "LastName" : "Doe", "Score" : 56 } ] }