如何根据MongoDB中数组元素的数据删除数组元素

时间:2018-09-17 17:38:27

标签: javascript arrays json mongodb

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

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

如果元素包含two作为value,则需要删除1的元素

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

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

1 个答案:

答案 0 :(得分:0)

带有Update运算符的

$pull命令可以解决问题。

您可以使用:

mockService = jasmine.createSpyObj('MyService', ['getSomeId']);
mockService.getSomeId.and.returnValue(10);