删除时忽略了限制 (mongoose)

6

我需要从一个集合中删除最早的几个文档,因此我写了以下代码:

Model.remove({
    u: "abc"
}).sort({
    _id: 1
}).limit(10).exec(function (err, count) {
    // count gives the total documents number...
});

And this:

Model.find(...).sort(...).limit(...).remove(...);

希望有人能帮忙,谢谢。
2个回答

12

MongoDB的删除操作不支持限制选项,但您可以查找要删除的文档的_id,然后使用$in将它们删除:

Model.find({u: "abc"}).select('_id').sort({_id: 1}).limit(10)
    .exec((err, docs)=> {
        const ids = docs.map((doc)=> doc._id);
        Model.deleteMany({_id: {$in: ids}}, (err)=> {...}); 
    }
);

1

抱歉,实际上我是指那个模型(修改过的)。这样做可以吗? - vilicvane

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接