【问题标题】:How to remove element from array in mongodb如何从MongoDB中的数组中删除元素
【发布时间】:2019-05-01 17:21:59
【问题描述】:

嗨,我有这样的结构。这是一个例子

{
    "_id" : "423dswar23ew2355",
    "competitions" : [ 
        "24",
        "58", 
        "354",
        "361"
    ],
}

如何从“competitions”数组中删除例如“58”项。

我见过一些类似的解决方案

{ $pull: { competitions: { $eq: "58" }}}

但我的 mongo 说 thar

MongoError:未知的顶级运算符:$eq

所以任何人都可以想出一些更简单但同时有效的解决方案。提前致谢

【问题讨论】:

    标签: mongodb mongodb-query


    【解决方案1】:

    试试下面的代码:

    db.col.update({_id: "423dswar23ew2355"}, { $pull: { "competitions": "58" } })
    

    记住,既然你有字符串,你应该将“58”作为字符串传递。

    【讨论】:

      【解决方案2】:

      这应该适用于新版本:

      db.col.updateOne({_id: "423dswar23ew2355"}, { $pull: { "competitions": "58" } })
      

      【讨论】:

        【解决方案3】:

        如果要删除58,可以使用

        db.lists.update({}, {$unset : {"competitions.2" : 1 }})

        然后

        db.lists.update({}, {$pull : {"competitions" : null}})

        希望对你有帮助

        【讨论】:

          猜你喜欢
          • 2020-04-16
          • 2017-12-22
          • 2020-08-19
          • 2015-06-12
          • 2013-01-06
          • 2013-06-02
          • 2016-02-25
          相关资源
          最近更新 更多