我在下面的playground 中描述了MongoDB文档 https://mongoplayground.net/p/7unPX_abybK

我不顾一切地试图在TargetedEvent的链接中添加一个元素,因为TargetedEvent的名称是"RdvPris",并且它与Target Type:"Mistings"没有链接

因此对于操场示例,它应该在下面添加一个元素 "Target Type":"T4" 和"Target Type":"T5"

请帮帮忙,这对我来说真的是一个谜

有谁有解决方案吗? 提前感谢

推荐答案

编辑:根据需要更新答案

要在"targetedEvent"的"links"数组中添加一个元素,当"targetedEvent"的名称是"RdvPris"并且它与"targetType"设置为"missions"没有链接时,您可以使用这个mongo查询,它将更新集合中所有匹配的文档.

db.collection.update({
  "targetedEvents": {
    $elemMatch: {
      "name": "RdvPris",
      "links.targetType": {
        $ne: "missions"
      }
    }
  }
},
{
  $push: {
    "targetedEvents.$[elem].links": {
      "targetType": "t30"
    }
  }
},
{
  multi: true,
  arrayFilters: [
    {
      "elem.name": "RdvPris",
      "elem.links.targetType": {
        $ne: "missions"
      }
    }
  ]
})

以下是带有示例的playground链接.

请随意添加相应的_id字段.

Mongodb相关问答推荐

映射数组值并查找每个匹配的集合

MongoDB MQL,将列表一分为二,仅获取唯一值

除非满足某个条件,否则Mongo是否按日期排序?

Select 筛选聚合中的嵌套字段

为什么 mongoose 在 mongodb 中找不到我的数据

MongoDB 按日期时间字段查询 1h 间隔

Mongodb Timeseries / Golang - ['timestamp' 必须存在并包含有效的 BSON UTC 日期时间值]

如何在 MongoDB 中已经存在的 slug 中添加一个随机数?

在 MongoDB 中使用 findOneAndUpdate 有条件地更新/更新嵌入式数组

有没有办法在 Prisma for MongoDB 的模式中显式声明 int32?

mongo shell 命令不接受使用 db 命令

Ruby on Rails 的 Cassandra、mongodb 或 couchdb

Mongodb 仅在值唯一时插入,否则更新 - 在 node.js 中

更新 MongoDB 中嵌套实体数组中的属性

MongoDB $或PHP中的查询

django 和 mongodb 是否使迁移成为过go ?

将 MongoDB 数据库复制到本地计算机

NoSQL:MongoDB 或 BigTable 并不总是 Available意味着什么

Python Django-REST-framework 和 Angularjs 的文件夹 struct

用于 MongoDB 的 Node.js 模块