我正在尝试在流星应用程序中的mongodb集合中查找和更新数组中的元素。
数组中的每个元素都是一个具有“_id”属性的对象,所以我使用的是mongo的'$'指针:
Collection.update({things._id: currentThingId},{$set: {things.$.value: aGivenValue}});
然而,它一直让我“意外”。异常,指向我使用“东西**。** _ id”的行。我遵循了mongodb文档,所以任何机会meteor都有这个mongo功能的限制吗?
答案 0 :(得分:4)
如果数组中的每个元素都是一个带有" _id"的对象。属性,为什么不使用
Collection.update({_id: currentThingId},{$set:{fieldToSet: aGivenValue}});
其中fieldToSet是您要将aGivenValue设置为的属性的名称。
答案 1 :(得分:4)
当使用 dot notation 通过从零开始的索引位置访问数组元素时,需要用引号将字段括起来,记住{{3}从查询结果限制数组的内容,以仅包含与查询文档匹配的第一个元素。因此,您的最终更新查询应如下所示:
Collection.update({"things._id": currentThingId},{$set: {"things.$.value": aGivenValue}});