从Array中删除与一组条件中至少一个条件匹配的项目

时间:2018-01-27 17:27:16

标签: mongodb mongoose

我正在尝试执行一个查询,删除一些与一组条件中的至少一个条件匹配的特定元素,

{
    id: 'myId',
    path2: [{
        a: '1'
    },{
        a: '2'
    },{
        a: '3'
    }]
}

并将其更新为:

{
    id: 'myId',
    path2: [{
        a: '1'
    }]
}

在这里,我从path2中删除了'a'字段的值等于 2或3 的所有元素。

我尝试了以下但没有成功(我使用的是猫鼬):

let conditions = ['2', '3'];

myModel.findOneAndUpdate({id: 'myId'},
    {$pull: {path2: {$elemMatch: {a: {$in: conditions}}}}}
);

提前谢谢。

1 个答案:

答案 0 :(得分:0)

应该这样做,

myModel.findOneAndUpdate({id: 'myId'}, {$pull: {path2: {a: {$in: conditions}}}} );

您不需要使用elemMatch