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