我需要更新多个集合文档的字段。该字段是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
);