通过在一个更新文档中传递两个$inc运算符,是否可以更新一个文档?

例如,我试图使用以下更新文档增加给定文档中的两个不同字段:

{
    "$inc" : { "ViewAggregates.4d75b891842f2d3930cf7674" : 1 },
    "$inc" : { "ViewAggregates.Total" : 1 }
}

不会引发任何错误,文档也会更新,但只有一个字段已递增.就好像服务器忽略了第一个$inc操作符,而实际上只应用了第二个.

这是预期的正确行为还是我遗漏了什么?

推荐答案

这是字典键唯一的一个有趣的副作用——第二个$inc覆盖了第一个.

但是,仍然可以增加多个字段:

{
    "$inc": {
        "ViewAggregates.4d75b891842f2d3930cf7674" : 1, 
        "ViewAggregates.Total" : 1
    }
}

这也适用于许多其他运营商:-)

Mongodb相关问答推荐

最有效的Mongo聚合来展开和过滤:匹配、展开、匹配与投影和过滤

在 ExpirePolicy 之后从 Store 中删除元素

Mongodb聚合中基于其他字段值的多个条件的动态新字段值

在推入 mongodb 时自动填充 golang struct 中的 created_at 和 updated_at

Stripe:必须提供来源或客户

Meteor 如何接收对 MongoDB 查询结果的更新?

如何在 MongoDb 中使用杰克逊将日期字段存储为 ISODate()

Mongoose 与 mongodb 如何返回刚刚保存的对象?

MongoDB 存储 ObjectId 的数组

MongoDB聚合排序不起作用

如何使用 MongoDB Compass 对数据进行排序

在 mongodb 聚合框架中执行 case-statement

用于嵌入式集合的 MongoDB 首选模式.文档与数组

mongodb:upserting:仅在插入文档时设置值

有人在 Google App Engine 上try 过 MongoDB 吗?

使用命令行从 MongoDB 数据库中的所有集合中删除所有索引

Mongoid 不在查询中

我如何将 mongodb 与electron一起使用?

MissingSchemaError:Schema hasn't been registered for model

MongoMapper 和迁移