要更新的两条记录,但只有一条得到更新

时间:2017-07-22 04:34:27

标签: mongodb

我正在学习MongoDB所以我开始阅读文档并玩弄查询等。

我有以下系列:

{ "_id" : 1, "a" : 1, "b" : 1 }
{ "_id" : 2, "a" : 2, "b" : 3 }
{ "_id" : 3, "a" : 3, "b" : 6 }
{ "_id" : 4, "a" : 4, "b" : 10 }
{ "_id" : 5, "a" : 5, "b" : 15 }

现在,如果我们查看以下查询:

db.stuff.update( { b : { $gte : 10 } },
                 { $set : { b : 15 } },
                 { multi : true, upsert : true } )

我如何看待运行的查询如下:

  1. 首先检查b是否大于或等于10
  2. 如果原始值为10或以上
  3. ,则设置b 15的值
  4. multi - 已被指定,因此它可以更新多条记录
  5. upsert - 当没有其他文档符合指定条件时插入新文档。
  6. 现在根据集合中的文档进行判断,我希望这会更新两条记录:

    { "_id" : 4, "a" : 4, "b" : 10 }
    { "_id" : 5, "a" : 5, "b" : 15 }
    

    然而它只更新一个,有人可以向我解释我在这里误解了什么吗?

0 个答案:

没有答案