【问题标题】:How to remove nested collection from mongodb using mongoose?如何使用 mongoose 从 mongodb 中删除嵌套集合?
【发布时间】:2021-08-14 13:57:02
【问题描述】:
"notes" : [ 
        {
            "postedDate" : "26 May 2021",
            "_id" : ObjectId("60ae1e295bcc843910478f8b"),
            "note" : "Second Note",
            "replies" : [ 
                {
                    "repliedDate" : "26 May 2021",
                    "_id" : ObjectId("60ae1e365bcc843910478f8c"),
                    "reply" : "Reply content"
                }
            ]
        }, 
        {
            "postedDate" : "26 May 2021",
            "_id" : ObjectId("60ae0a95fa592734e41b6236"),
            "note" : "Hello",
            "replies" : [ 
                {
                    "repliedDate" : "26 May 2021",
                    "_id" : ObjectId("60ae0a9afa592734e41b6237"),
                    "reply" : "Hi"
                }, 
                {
                    "repliedDate" : "26 May 2021",
                    "_id" : ObjectId("60ae1ab15bcc843910478f88"),
                    "reply" : "new reply"
                }, 
                {
                    "repliedDate" : "26 May 2021",
                    "_id" : ObjectId("60ae1b085bcc843910478f89"),
                    "reply" : "Hie"
                }, 
                {
                    "repliedDate" : "26 May 2021",
                    "_id" : ObjectId("60ae1b185bcc843910478f8a"),
                    "reply" : "world"
                }
            ]
        }
    ]

我有一个笔记集,里面有单独的笔记,每个笔记都有回复。我想从笔记集合下的笔记中删除个人回复。我之前在同一个工作中使用过 pull,但是如果集合嵌套在两个级别上,我不知道如何实现它。

【问题讨论】:

  • 这个答案对你有帮助吗?
  • 效果很好,非常感谢您的帮助
  • 欢迎您。请有一个Tour

标签: node.js reactjs mongodb mongoose


【解决方案1】:

您可以将updatearrayFilter 一起使用

db.collection.update({},
{
  "$pull": {
    "notes.$[n].replies": {
      "_id": "60ae1e365bcc843910478f8c"
    }
  }
},
{
  arrayFilters: [
    {
      "n._id": "60ae1e295bcc843910478f8b"
    }
  ]
})

工作Mongo playground

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 2020-11-26
    • 2013-12-04
    • 1970-01-01
    相关资源
    最近更新 更多