MongoDB有条件地追踪最新记录

时间:2016-08-23 17:20:05

标签: mongodb conditional upsert

我的收藏集col包含name作为唯一键,位于文档

之下

(我实际上在" D"字段中使用日期,但为了简单起见,我们将在此处使用数字)

{ "_id" : ObjectId("57bc79f2d3dd9e95d6ac2d4f"), "name" : "abc", "D" : 5 }

我想做一个条件upsert,如下所示,

姓名:" abc",D:6(更新)

姓名:" abc",D:4(忽略)

姓名:" bcd",D:10(插入)

我在mongo shell中尝试了以下查询

db.col.update(
   {"name":"abc","D":{$lt:6}},
   {
      $set:{"name":"abc","D":6},
      $setOnInsert:{"D":6}
   },
   {"upsert":1}
)

但它会抛出

"writeError" : {
                "code" : 16836,
                "errmsg" : "Cannot update 'D' and 'D' at the same time"
 }

0 个答案:

没有答案