文档集合中嵌套了名为“ xxx”的对象,我想添加新字段(如果不存在),并为该字段分配新的UUID。
{_id: '000', vgr: {tp: 'a', en: 'b'}},
{_id: '000', vgr: {tp: 'c', en: 'd'}}
上面是我的样本集合,现在我想在“ vgr”对象中添加一个名为“ id”(UUID)的新字段,还需要检查对象是否具有“ id”字段。
答案 0 :(得分:0)
您可以尝试:
db.collection.updateMany({"vgr.id": {$exists: false}}, {$set: {"vgr.id": UUID()}})
第一个参数是您的filter
:您正在寻找id
对象中尚未包含嵌套属性vgr
的文档。
第二个参数是您将嵌套的id
字段添加到过滤后的文档中的位置。