更新蒙戈DB文档的单个列表项
问题描述:
我有一个MongoDB的内部集合了以下文件结构:更新蒙戈DB文档的单个列表项
{ _id: XXX, Name: "Example", References: [ { RefId: YYY, RefCount: 2 }, ...] }
令我百思不解的是如何编写递增恰好的一个更新()操作参考ID(RefId)一个。需要更新其引用的文档将通过其_id字段进行标识。
我知道替换整个文档的可能性,但如果可能的话,我想避免这种情况。
答
在您的update
中使用$
positional operator来标识数组中您的查询参数匹配的元素。
因此,像:
t.update({_id: XXX, 'References.RefId': YYY}, {$inc: {'References.$.RefCount': 1}});
感谢您的帮助!您提供的文档声明$不能与upsert结合使用。所以我想没有可能编写一个查询来增加一个列表对象(如果找到)或插入一个ist对象的计数为1? – 2012-08-08 16:16:19
这是正确的。这是该功能的杰拉:https://jira.mongodb.org/browse/SERVER-3326 – JohnnyHK 2012-08-08 16:26:52
什么是服务,再次感谢! – 2012-08-08 16:30:34