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

我试图find一个最佳的方式来删除查找查询返回的顶部N以外的所有文档。

我们目前正在做的是得到所有的文档IDsorting和跳过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}})