次のようなドキュメントがあるとします。
{
"_id": ObjectId("50b6a7416cb035b629000001"),
"businesses": [{
"name": "Biz1",
"id": ObjectId("50b6bc953e47dc923e000001")
}, {
"name": "Biz2",
"id": ObjectId("50b6ccebae0513bf52000001")
}, {
"name": "Biz3",
"id": ObjectId("50b6d015c58b414156000001")
}, {
"name": "Biz4",
"id": ObjectId("50b6d0c8a4cdd5e356000001")
}]
}
削除したい
{
"name": "Biz3",
"id": ObjectId("50b6d015c58b414156000001")
}
一連のビジネスから。私はこれを試しました(明確にするためにIDの代わりにビジネス名を使用しています):
db.users.update({'businesses.name':'Biz3'},{$pull:{'businesses.name':'Biz3'}})
しかし、もちろんうまくいきませんでした。これを行うとドキュメントが返されるため、クエリ部分が正しいことがわかります。
db.users.find({'businesses.name' : 'Biz3'})
したがって、問題は更新部分にあります。