1

我有一个结构如下的 MongoDB 文档:

{
    testValue: 10,
    maxValue: 20
}

我想设置testValue为 0 和maxValue. 理想情况下,我会做这样的事情:

db.collection.update(
    {},
    {
        $set: { 'testValue': newValue },
        $min: { 'testValue': 0 },
        $max: { 'textValue': $maxValue }
    }
)

但这显然行不通。有一些线程与这个问题相关(例如Update MongoDB field using value of another field),但它们都有几年的历史了,我在官方文档中找不到相关信息。有没有办法做我想做的事,还是我必须使用 find() 来获取maxValue然后使用 update() 对数据库进行单独调用?

4

1 回答 1

2

这在 Mongo 3.2 或更低版本中仍然是不可能的,例如这些 JIRA 票:

  1. 自我参考更新
  2. 允许使用引用字段更新计算表达式
于 2016-01-07T15:57:03.657 回答