0
嘿,我嘗試使用下面的代碼更新在陣列
setDuelToInactive: (duel) ->
Duels.update({_id: duel._id}, $set: {active: false})
userOneId = duel.userOneId
userTwoId = duel.userTwoId
Users.update({_id: userOneId}, { $set: { 'profile.character.souls.$.active': false} })
Users.update({_id: userTwoId}, { $set: { 'profile.character.souls.$.active': false} })
return
,其中在收集用戶的亡靈字段是陣列更新包含在陣列中的所有子文檔的所有元素。收到以下錯誤消息
MongoError: Cannot apply the positional operator without a corresponding query field containing an array.
MongoDB服務器(如2.6)不支持使用位置運算符($)更新數組中的所有子文檔。位置運算符僅適用於第一個匹配元素。您可以在MongoDB問題跟蹤器中觀看/上傳一個功能請求:[SERVER-1243:使用位置運算符更新數組中的所有項目](https://jira.mongodb.org/browse/SERVER-1243)。最快的臨時解決方法可能是使用完整數組檢索文檔,並在保存前在應用程序代碼中執行必要的操作。 – Stennie 2014-08-30 13:00:09