【问题标题】:Mongoose $pull a document within array of arrayMongoose $pull 数组数组中的文档
【发布时间】:2021-09-14 08:20:39
【问题描述】:
    {
       "_id":5150a1199fac0e6910000002,
       "name":"some name",
       "items":[
          {
             "id":23,
             "name":"item name 23",
             "childItems":[
                {
                   "id":233,
                   "name":"item 233"
                },
                {
                   "id":234,
                   "name":"item 234"
                }
             ]
          },
          {
             "id":24,
             "name":"item name 24",
             "childItems":[]
          }
       ]
    }

我正在尝试更新数组的“数组中的文档”。我已经使用位置 $ 运算符在其父级(利益相关者数组)上工作,使用我之前提出的这个问题的答案。所以我的查询看起来像这样.....

this.model.findOneAndUpdate( { items: { id: '23' } }, { $pull: { items: { childItems: { id: '223' } } } },).exec();

【问题讨论】:

标签: node.js mongoose nestjs


【解决方案1】:

通过一些步骤,我终于可以通过查询解决这个问题

await this.model
            .update(
              { 'items.id': 'id' },
              { $pull: { 'items.$[element].childItems': { id: 'id' } } },
              { arrayFilters: [{ 'element._id': 'id' }], multi: true },
            )
            .exec();

感谢 Cuong Le Ngoc

【讨论】:

    猜你喜欢
    • 2022-01-08
    • 2017-07-05
    • 2020-09-21
    • 2017-09-17
    • 2018-01-26
    • 2014-11-03
    • 2013-07-15
    • 2021-02-10
    相关资源
    最近更新 更多