gpt4 book ai didi

mongodb - 如何在数组中增加 MongoDB 文档对象字段

转载 作者:IT老高 更新时间:2023-10-28 13:21:00 28 4
gpt4 key购买 nike

这是我的文档的格式:

{
_id: some id,
name: 'some name',
versions: []
}

versions 字段中,我存储像 {v: '2.5', count: 5} 这样的对象,其中 count 保存次数一个版本正在使用中。

以下最简单的方法是什么?

  1. versions 数组中插入一个新对象(如果它不存在)
  2. 如果特定版本存在于 versions 数组中,则增加其 count

最佳答案

最简单的方式应该是,

db.collection.update({versions.v:'some_version'},{"$inc":{"versions.$.count":1}});

如果版本存在,这将增加您的计数,但正如 MongoDB 文档所说,$ 运算符不能与 upsert 混合,因此上述查询不会导致插入 if {versions. v:'some_version'} 失败。

The positional operator cannot be combined with an upsert since it requires a matching array element. If your update results in an insert then the "$" will literally be used as the field name.

以下是 JIRA 票证,用于支持 $ 的 upsert。您可以投票并观看这些问题。

Upsert with $-positional operator can create bad documents

Support $ positional operator with an upsert

关于mongodb - 如何在数组中增加 MongoDB 文档对象字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11184079/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com