在upsert期间使用$ setOnInsert自动生成时间戳

时间:2015-02-17 10:19:38

标签: mongodb mongodb-query

我们一直在MongoDB 2.4。*中使用以下命令来创建一个在插入的文档中具有自动生成的时间戳值的字段,同时不触及相同的更新字段:

db.entity.update({EntityId : "ID01"}, 
                 {$setOnInsert : {Created : Timestamp(0,0)}, $set : {Name: "Abc"}}, 
                 {upsert : true})

这在2.4。*中工作正常,插入的文档中填充了当前时间戳值的字段:

{
   "_id" : ObjectId("54e312dc649bb37cf4ab413a"),
   "Created" : Timestamp(1424167644, 1),
   "Name" : "Abc",
   "EntityId" : "ID01"
}

但是,当我们在MongoDB 2.6.7中运行相同的命令时,我们最终得到一个空的时间戳:

{
    "_id" : ObjectId("54e312e712e476107488a632"),
    "EntityId" : "ID01",
    "Created" : Timestamp(0, 0),
    "Name" : "Abc"
}

有没有办法在2.6中重现2.4行为?

0 个答案:

没有答案