Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在mongoDB中,如何通过查询保留前N个文档并删除所有其他文档?_Javascript_Node.js_Mongodb - Fatal编程技术网

Javascript 在mongoDB中,如何通过查询保留前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}}) 是否有任何方法可以使用单个查询

我正试图找到一种最佳的方法来删除除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}})

是否有任何方法可以使用单个查询以最佳方式执行此操作?

尝试相反的操作

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更高(比跳过的值高),那么另一种方法最好。