MongoDB如何更新数组内指定对象字段并向内嵌数组追加元素
MongoDB 更新语句实现方案
你可以使用 MongoDB 的数组筛选器arrayFilters精准定位到shedule数组中包含SUN键的元素,再分别执行状态修改和数组追加操作,完整语句如下:
// 单文档更新用updateOne,多文档批量更新可替换为updateMany db.你的集合名.updateOne( // 筛选目标文档,可按实际需求替换为_id等精准匹配条件 { "shedule.SUN": { $exists: true } }, { // 修改SUN的status为true $set: { "shedule.$[target].SUN.status": true }, // 向task数组追加1、2两个元素 $push: { "shedule.$[target].SUN.task": { $each: [1, 2] } } }, { // 数组筛选规则:匹配shedule数组中存在SUN键的元素 arrayFilters: [ { "target.SUN": { $exists: true } } ] } )
注意事项
- 请将语句中的
你的集合名替换为你实际操作的集合名称 - 语句中的字段名
shedule和你给出的文档结构保持一致,如果是拼写笔误实际为schedule,请同步修改语句中的字段名 - 如果需要精准匹配单个文档,建议把第一个查询参数替换为
{ "_id": ObjectId("你的文档ID") },避免误改其他文档
内容的提问来源于stack exchange,提问作者Sufail Kalathil
相关产品推荐
相关产品推荐

