【问题标题】:How to remove elements of an array based on the array element's data in MongoDB如何根据MongoDB中数组元素的数据删除数组元素
【发布时间】:2018-09-17 17:38:26
【问题描述】:

如果数组包含特定数据,如何编写 Mongo 查询来删除数组的元素?

{
    "_id": ObjectId("ajdi293akjf83rhfsf398"),
    "one": "oneData",
    "two": [
        {
         "_id":ObjectId("akjf82ijikfj83jkfkj3"),
         "value": 1
        },
        {
         "_id":ObjectId("akjf82ijikfj83jkfkj3"),
         "value": 2
        },
        {
         "_id":ObjectId("akjf82ijikfj83jkfkj3"),
         "value": 1
        }
        ]
}

如果元素包含value1,则需要删除two 的元素

{
    "_id": ObjectId("ajdi293akjf83rhfsf398"),
    "one": "oneData",
    "two": [
        {
         "_id":ObjectId("akjf82ijikfj83jkfkj3"),
         "value": 2
        }
        ]
}

请告诉我如何实现这一目标 非常感谢。

【问题讨论】:

标签: javascript arrays json mongodb


【解决方案1】:

Update 命令与 $pull 运算符可以解决问题。

你可以使用:

    db.collection.update( {} ,
                          { $pull: {two : {value : 1} } },
                          { multi: true });

【讨论】:

    猜你喜欢
    • 2011-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-02
    • 2016-02-25
    相关资源
    最近更新 更多