我试图找到一种最佳的方法来删除所有文档,但查找查询返回的前N个除外。

我们当前正在做的是让所有文档ID排序并跳过N。然后使用查询{id: {$in: idsList}}触发删除。

1. model.find(findQuery).sort({_id:-1}).skip(N) -> collecting all ids from this query(idsList)

2. model.remove({_id:{'$in':idsList}})


有什么方法可以使用单个查询以最佳方式做到这一点?

最佳答案

尝试做相反的事情。

1. idsList = model.find(findQuery).sort({_id:-1}).limit(N)


2. model.remove({_id:{'$nin':idsList}})

09-26 13:39