更新蒙戈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}}); 
+0

感谢您的帮助!您提供的文档声明$不能与upsert结合使用。所以我想没有可能编写一个查询来增加一个列表对象(如果找到)或插入一个ist对象的计数为1? – 2012-08-08 16:16:19

+0

这是正确的。这是该功能的杰拉:https://jira.mongodb.org/browse/SERVER-3326 – JohnnyHK 2012-08-08 16:26:52

+0

什么是服务,再次感谢! – 2012-08-08 16:30:34