2
鑑於這種樣本文檔:addToSet在一個數組的數組
> db.sample.find().pretty()
{
"_id" : ObjectId("570f76ca4fe66c8ae29f13cd"),
"a" : [
{
"b" : [
1,
2,
3
]
},
{
"b" : [
1,
2,
3,
4
]
},
{
"b" : [
4
]
}
]
}
我想4號添加到b
陣列每個實例的a
陣列中
我曾希望
db.sample.update({},{$addToSet:{"a.b":4}})
會做的伎倆,但產生了錯誤:
cannot use the part (a of a.b) to traverse the element ({a: [ { b: [ 1.0, 2.0, 3.0 ] }, { b: [ 1.0, 2.0, 3.0, 4.0 ] }, { b: [ 4.0 ] } ]})
這樣的更新可能嗎?很顯然,我可以將每個文檔都提交給客戶端進行更新並進行替換,但這只是最後的手段。
看起來像你試圖做這個'db.sample.update({},{$ addToSet:{a [0] .b:4,a [1] .b:4,a [2] .b:4}})'。你將不得不通過數組中的每個項目。 –