Mongodb怎样更新像这样的文档,数组里面有子文档
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mongodb怎样更新像这样的文档,数组里面有子文档相关的知识,希望对你有一定的参考价值。
参考技术A 更新数组字段使用$push关键词提供参考代码:使用node.js
var filter;
if (paramtype === 1)
filter = helpapiuuid: helpapiuuid, "requests.paramid": opts.paramid;
else
filter = helpapiuuid: helpapiuuid, "responses.paramid": opts.paramid;
var update;
if (paramtype === 1)
update =
$set:
"requests.$.param": opts.param,
"requests.$.type": opts.desc,
"requests.$.desc": opts.desc,
"requests.$.default": opts.default
;
else
update =
$set:
"responses.$.param": opts.param,
"responses.$.type": opts.desc,
"responses.$.desc": opts.desc,
"responses.$.default": opts.default
;
return publicdb.collection(colname).findOneAndUpdateAsync(filter, update, upsert: false)本回答被提问者和网友采纳
MongoDB 更新数组条目
【中文标题】MongoDB 更新数组条目【英文标题】:MongoDB update arrays entry 【发布时间】:2021-12-24 22:09:56 【问题描述】:我有一个文档要像这样的 Mongodb 更新对象数组:
"myArray": [
"Key1": "string",
"key2":
"entry": "aaa"
,
"Key1": "string",
"key2":
"entry": "bbb"
]
我想修改 myArray 的每个对象中的 key2 字段。预期的结果应该是:
"myArray": [
"Key1": "string",
"key2Modified":"aaa"
,
"Key1": "string",
"key2Modified":"bbb"
]
有什么帮助吗?
【问题讨论】:
查看array update operators 和arrayFilters。 【参考方案1】:在$set
中使用$map
db.collection.update(,
[
$set:
"myArray":
$map:
input: "$myArray",
as: "a",
in:
Key1: "$$a.Key1",
key2Modified: "$$a.key2.entry"
])
mongoplayground
【讨论】:
以上是关于Mongodb怎样更新像这样的文档,数组里面有子文档的主要内容,如果未能解决你的问题,请参考以下文章
使用 Spring Data MongodB 更新嵌入式 mongodb 文档中的数组字段?
PHP的MongoDB driver怎样像mysql一样count统计文档条数