MongoDB -仅从DBRef字段类型更新$ref



我需要更新多个集合文档的字段。该字段是DBRef,我只需要改变$ref字段值。

其中一个文档是这样的:

{" _id ": {" $ oid":"50 ab682bd3155502a75c7cf6"},"codeId":{$ ref":"版本"、"$ id ": {" $ oid":"511"cb7d5696bdbaf4c85ebb1}}}

我想要的最终结果是:

{" _id ": {" $ oid":"50 ab682bd3155502a75c7cf6"},"codeId":{$ ref"代码:"","$ id ": {" $ oid":"511"cb7d5696bdbaf4c85ebb1}}}

我试过了:

db.collection.update(
   {}, 
   {$set:{"codeId":{$ref:"code"}}},
   false,
   true
);

问题是$id丢失了(设置为null)

{" _id ": {" $ oid":"50 ab682bd3155502a75c7cf6"},"codeId":{$ ref"代码:"","$ id ": {" $ oid":}}}

如何保持$id?

谢谢

您可以使用点符号来更新嵌套的文档。注意,无论何时使用点符号,它都应该放在引号之间。

db.collection.update(
   {}, 
   { $set:{
       "codeId.$ref":"code"
     }
   },
   false,
   true
);

最新更新