这是我的文档格式:
{
_id: some id,
name: 'some name',
versions: []
}
在
versions
字段中,我存储类似 {v: '2.5', count: 5}
的对象,其中 count
保存版本使用的次数。执行以下操作的最简单方法是什么?
versions
数组中插入一个新对象 versions
数组中,然后递增其count
最佳答案
最简单的 方式应该是,
db.collection.update({versions.v:'some_version'},{"$inc":{"versions.$.count":1}});
如果版本存在,这将增加您的计数,但正如 MongoDB 文档所说,
$
运算符不能与 upsert 混合,因此如果 {versions.v:'some_version'}
失败,上面的查询不会导致插入。以下是用于支持 $.upsert 的 JIRA 票证。您可以投票并观看这些问题。
Upsert with $-positional operator can create bad documents
Support $ positional operator with an upsert
关于mongodb - 如何在数组中增加 MongoDB 文档对象字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11184079/