我需要从集合
中删除子文档tasks = item.tasks; // item is mongodb collection element, tasks is array of sub docs
tasks.forEach(function(task){
if (!task.finished)
tasks.remove(task)
})
item.save()
之后我得到的情况是,并非所有带有完成== true的子文档都被删除。
还有其他更正确的方法来做我需要的吗?
答案 0 :(得分:1)
您可以使用带有$pull
运算符的update
原子地执行此操作:
Items.update({_id: item._id}, {$pull: {tasks: {finished: true}}}, ...);
似乎你也可以使用MongooseArray#pull
执行此操作,但是文档很薄,我从来没有想过如何使用它。