2013-10-24 96 views
0

集合是這樣的: { 'id' : 'xxx', 'items' : [ { 'index' : 1, 'on' : '' }, { 'index' : 2, 'on' : '' } ] } 複雜蒙戈更新

我可以這樣做的更新: collection.update( { 'id' : 'xxxx', 'items.index' : '2' }, { '$set' : { 'on' : 'true' } )

然而,問題是,如果我想擁有多項目之一文件更新(每個項目可能具有不同的「開」鍵值)。然後我必須做一個循環。

有沒有辦法在一次調用中更新全部?

+0

我假設你意外地忽略了你需要的位置運算符。答案還沒有:https://jira.mongodb.org/browse/SERVER-1243 – Sammaye

回答

0
db.collection.update({id:'xxx', items:{$elemMatch:{index:2}}}, {$set:{'items.$.on':true}}) 
+0

寫一行代碼,而不是解釋它,就像......很好,但事實並非如此。你認爲這會起作用嗎? – Sammaye

+0

我測試過,它工作。我打算根據問題添加一些解釋。但沒有。 –

+0

什麼更新所有匹配的子庫?多重?儘管我在上面張貼了JIRA? – Sammaye