如何通过查询保留前N个文档并删除mongoDB中的所有其他文档?

时间:2017-08-09 08:41:38

标签: javascript node.js mongodb

我正在尝试找到一种最佳方法来删除除查找查询返回的前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 个答案:

答案 0 :(得分:0)

尝试与之相反。

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


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