db.collection.find().pretty()
{"_id" : ObjectId("5836b428d7e99005c2585b08"), "services" : [{"type" : "Financial Transaction"}],"outStandingAmount" : 0}
{"_id" : ObjectId("5836c5a9d7e99005c2585b09"), "services" : [{"type" : "Financial Transaction"}], "outStandingAmount" : 2000}
下面的查詢將做匹配的記錄更新。
db.collection.updateMany({"services.type":"Financial Transaction"}, {$set:{
"services":[{"type":"Financial Trans"}]}});
因爲我們有我們的收集 兩個匹配記錄上述updateMany查詢的結果是
{ "acknowledged" : true, "matchedCount" : 2, "modifiedCount" : 2 }
而如果我們用
db.getCollection('user_informations').updateMany({"services.type":"Financial Transaction"},{$set: {"services.type":"Financial Trans"}})
,我們會得到一個錯誤味精
"errmsg" : "cannot use the part (services of services.type) to traverse the element ({services: [ { type: \"Financial Transaction\" } ]})"
當涉及數組時,則'。'用於遍歷數組元素,即使我們可以使用'。'遍歷嵌套數組,但是對於修改數組我們有一組運算符,請參閱https://docs.mongodb.com/v3.2/reference/operator/update-array/
也'。'在使用位置運算符$時用於更新查詢。
你能提供錯誤信息嗎? – cjungel