首页 > 解决方案 > mongodb设置对象,其中键值动态变化

问题描述

在一个文档中,我有一个名为的对象farms,在该对象内部,我想以以下方式更新键值对。我该怎么做?

$set:{"farms[${farm._id}]":{name:"a-farm", size:100}

结果看起来像这样(假设farm._id = 12345

farms:{"12345": {name"a-farm", size: 100}}

标签: mongodb

解决方案


您可以使用$set并使用点符号动态构建您的密钥,尝试:

var farm = { _id: 12345 }
var path = "farms." + farm._id;
var documentId = ... // your document id

db.col.update({ _id: documentId  }, { $set: { [path]: { name:"a-farm", size:100 } }  })

推荐阅读