Javascript 在mongoDB中,如何通过查询保留前N个文档并删除所有其他文档?
我正试图找到一种最佳的方法来删除除find查询返回的top N之外的所有文档 我们目前正在做的是对所有文档id进行排序并跳过N。然后使用查询Javascript 在mongoDB中,如何通过查询保留前N个文档并删除所有其他文档?,javascript,node.js,mongodb,Javascript,Node.js,Mongodb,我正试图找到一种最佳的方法来删除除find查询返回的top N之外的所有文档 我们目前正在做的是对所有文档id进行排序并跳过N。然后使用查询{id:{$in:idsList}启动remove 1. model.find(findQuery).sort({_id:-1}).skip(N) -> collecting all ids from this query(idsList) 2. model.remove({_id:{'$in':idsList}}) 是否有任何方法可以使用单个查询
{id:{$in:idsList}
启动remove
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}})
试着做相反的事情
1. idsList = model.find(findQuery).sort({_id:-1}).limit(N)
2. model.remove({_id:{'$nin':idsList}})
我们不能说这永远是最好的,对吗?如果N比跳过的N高,那么另一种方法是最好的。我们不能说这永远是最好的,不是吗?如果N更高(比跳过的值高),那么另一种方法最好。