mongodb - mongodb设置对象,其中键值动态变化
问题描述
在一个文档中,我有一个名为的对象farms
,在该对象内部,我想以以下方式更新键值对。我该怎么做?
$set:{"farms[${farm._id}]":{name:"a-farm", size:100}
结果看起来像这样(假设farm._id = 12345
)
farms:{"12345": {name"a-farm", size: 100}}
解决方案
您可以使用$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 } } })
推荐阅读
- npm - 如何在不安装的情况下修改 package.json 依赖项
- swift - 我们如何在 textField 中仅使用“.isEnabled = false”作为索引?
- azure - 如何停止多个 azure vm 上的服务?
- r - 在彼此之上绘制单变量时间序列周期(天),并在周期之间平滑过渡
- python - 使用 pdftabextract 提取 PDF 表格数据
- git - 推送的更改是否等于删除和或替换文件内容?
- javascript - 如何将字典从 Django 视图传递到 JavaScript 并使用键访问字典值
- javascript - TS2769:没有重载匹配此调用
- sql - 在 postgreSQL 查询中没有数据的月份返回 0
- c++ - gps.location.isUpdated() 条件不起作用