在更新查询中引用找到的文档

时间:2019-07-15 22:29:42

标签: mongodb

我想在更新查询中引用找到的文档,以便可以保留文档的历史记录。

说我有一个看起来像这样的对象:

{
  "_id": ObjectId("..."),
  "foo": "bar",
  "baz": "quux"
}

我想将baz键更新为quuux,同时将当前修订保留在名为history的新键中,该键可能看起来像这样:

db.test.update(
  {foo: "bar"},
  {
    $set: {baz: "quuux"},
    $push: {
      history: {
        $each: [ this ],
        $slice: 3 
      }
    }
  }
)

这种方法很幼稚,因为this不能解析找到的文档。我想知道这种天真的方法是否有其他可能。

为澄清起见,如果这种方法行得通,我希望新文档看起来像这样:

{
  "_id": ObjectId("..."),
  "foo": "bar",
  "baz": "quuux",
  "history": [
    {
      "_id": ObjectId("..."),
      "foo": "bar",
      "baz": "quux"
    }
  ]
}

0 个答案:

没有答案