MongoDB更新ObjectId字段

时间:2015-11-27 16:56:33

标签: mongodb mongo-shell

我有一个文件,其属性是ObjectId。例如,下面代码中的锚点字段:

{ "__v" : 0, "_id" : ObjectId("5654d896481c5186ddaf4481"), "anchor" : ObjectId("565480e5481c5186ddaf446c"), "base_url" : "http://example.com"}

我看到了文档here,但不清楚如何更新ObjectId引用字段。我希望这个引用只指向另一个anchor文档,我可以将ObjectId作为字符串放置如下:

db.categories.update(
   { },
   {
      $set {anchor: "5654d47a481c5186ddaf4479"}
   },
   { multi: true }
)

1 个答案:

答案 0 :(得分:5)

您可以使用ObjectId()

db.categories.update(
   { },
   {
      $set: { anchor: ObjectId("5654d47a481c5186ddaf4479") }
   },
   { upsert: true }
)

https://docs.mongodb.org/manual/reference/object-id/#core-object-id-class

  

mongo shell提供了ObjectId()包装类来生成一个新的ObjectId,...