【问题标题】:Mongodb - I need to delete multiple objects from arrayMongodb - 我需要从数组中删除多个对象
【发布时间】:2021-05-29 05:57:00
【问题描述】:

我有这个数据集:

{
        "_id" : ObjectId("6036953aec9d2a3612452bae"), "name" : "Chris",
        "friends" : [
                      { "name" : "xyz", "age" : 23 }, // delete
                      { "name" : "xyz", "age" : 34 }, // delete
                      { "name" : "abc", "age" : 18 },
                      { "name" : "pqr", "age" : 27 } // delete
                    ],
}

我想为用户删除提到的对象:

这是我正在做的查询:

db.users.updateOne(
  { name: "Chris" }, 
  { $pull: { 'friends.$[el]' } }, 
  { arrayFilters: [{ 'el.name': { $in: [ 'xyz', 'abc' ] } }] }  
)

错误:

uncaught exception: SyntaxError: missing : after property id :

提前致谢!

【问题讨论】:

    标签: node.js mongodb express mongoose nosql


    【解决方案1】:

    您可以在从文档数组中删除项目部分查看documentation,这是您想要的示例。

    此查询有效:

    db.users.updateOne(
    {"name": "Chris"},
    {
      "$pull": {
        "friends": {
          "name": {
            "$in": ["xyz","pqr"]
          }
        }
      }
    })
    

    例如here

    此查询更新找到nameChris 的第一个文档,并将friends.name 所在的($pull) 对象删除到$in 数组中。

    【讨论】:

      猜你喜欢
      • 2021-04-19
      • 2013-03-16
      • 1970-01-01
      • 2023-02-15
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多