在 MongoDB 中,在另一个键等于某个值的情况下,如何更新键值?
这一点上,请使用 $elemMatch 和 $set
我们首先使用文档创建一个集合:
> dbkeyValueDemoinsertOne( { "_id" : new ObjectId(), "CustomerDetails" : [ { "Name" : "Chris", "Age" :24, }, { "Name" : "Robert", "Age" :29, }, { "Name" : "David", "Age" :35, } ] } ); { "acknowledged" : true, "insertedId" : ObjectId("5cefcf36ef71edecf6a1f6bf") }
以下是使用 find() 方法从集合中显示所有文档的查询:
> dbkeyValueDemofind()pretty();
输出
{ "_id" : ObjectId("5cefcf36ef71edecf6a1f6bf"), "CustomerDetails" : [ { "Name" : "Chris", "Age" : 24 }, { "Name" : "Robert", "Age" : 29 }, { "Name" : "David", "Age" : 35 } ] }
以下是更新键值,其中不同的键等于某个值时的查询:
> dbkeyValueDemoupdate( {"CustomerDetails":{"$elemMatch":{"Name":"David"}}}, {"$set":{"CustomerDetails$Age":56}}); WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 } )
让我们再次检查一下文档:
> dbkeyValueDemofind()pretty();
输出
{ "_id" : ObjectId("5cefcf36ef71edecf6a1f6bf"), "CustomerDetails" : [ { "Name" : "Chris", "Age" : 24 }, { "Name" : "Robert", "Age" : 29 }, { "Name" : "David", "Age" : 56 } ] }
广告