MongoDB更新ObjectId字段

San*_*rea 0 mongodb mongo-shell

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

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

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

db.categories.update(
   { },
   {
      $set {anchor: "5654d47a481c5186ddaf4479"}
   },
   { multi: true }
)
Run Code Online (Sandbox Code Playgroud)

kat*_*lee 5

你可以使用ObjectId():

db.categories.update(
   { },
   {
      $set: { anchor: ObjectId("5654d47a481c5186ddaf4479") }
   },
   { upsert: true }
)
Run Code Online (Sandbox Code Playgroud)

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

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