3

私のコレクション (「ワーカー」と呼ばれます):

"_id" : "500"
"type" : "Manager",
"employees" : [{
"name" : "bob"
"id" : 101
},{
"name" : "phil"
"id" : 102
}]

目標: type: Manager であり、かつ「id」が 102 のサブドキュメントを含むすべての _id について: 102 を 202 に置き換えます。

望ましい最終結果:

"_id" : "500"
"type" : "Manager",
"employees" : [{
"name" : "bob"
"id" : 101
},{
"name" : "phil"
"id" : 202
}]

私が試してみました:

db.workers.update({type:'Manager','employees.id':'102'},{$set:{'employees.id':'202'}},{multi:true})

次に、確認のために次の 2 つのことを行いました。

db.workers.find({type: "Manager", 'employees.id': 102}).count()

9の結果が得られます。

私も確認するためにこれを試しました:

db.workers.find({$and: [{type: "Manager"},{"employees.id":60}]}).count()

これは 0 を返しました。

この時点でかなり混乱しています。私のアップデートは間違っていますか?私の発見は間違っていますか?両方ですか?「9」の結果は間違っていますか? 「0」は間違っていますか?

4

1 に答える 1