使用更新查询的MongoDB,创建项目并将其添加到列表或增加项目';柜台
我有以下文档架构:使用更新查询的MongoDB,创建项目并将其添加到列表或增加项目';柜台,mongodb,Mongodb,我有以下文档架构: { date: dateValue items: [ { name: 'a', counter: 4}, { name: 'b', counter: 17}, { name: 'aabbb', counter: 15}, ... ] } 我希望有一个upsert更新查询,如果记录不存在,它将创建整个记录。 此外,我想检
{
date: dateValue
items:
[
{ name: 'a', counter: 4},
{ name: 'b', counter: 17},
{ name: 'aabbb', counter: 15},
...
]
}
我希望有一个upsert更新查询,如果记录不存在,它将创建整个记录。
此外,我想检查列表中是否存在某个项目(按其名称),
如果该项不存在,我想在列表中添加一个计数器为1的新项。
如果项目存在,将计数器提高1
有没有办法用一个更新语句在中执行此查询 您需要做两件事:
{upsert:1}
标志插入尚未存在的特定日期文档{$inc}
运算符增加项目值。事实证明,如果将一个不存在的字段按1递增,它将以值1创建(就好像它以值0存在一样)$inc
因此,如果您想在单个update语句中执行此操作,则需要更改模式-只有您可以决定是否这样做,因为这可能会影响其他读写操作与数据的交互方式。感谢您的回复,我已经按照您的建议对模式进行了更改,因为这是我能找到的唯一解决方案。