Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/36.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
Node.js 从一个点到另一个点从mongodb获取数据_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 从一个点到另一个点从mongodb获取数据

Node.js 从一个点到另一个点从mongodb获取数据,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我的数据库中有大约2000万个条目,我想得到前10000个条目并对其进行操作和更新。完成后,我需要获得下一个10000,等等。但我的问题是,我找不到任何方法可以帮助我做到这一点。基本上,我正在寻找这样的东西(如果存在的话)查找0到10000之间的数据。处理完这些数据后,我需要再次请求数据库查找10000到20000之间的数据,以此类推。这里有一个提示:尝试为版本字段创建索引。所有文档最初都将以版本的null开头。考虑到这一点,我们可以对所有版本为null的文档执行find(),然后执行limit

我的数据库中有大约2000万个条目,我想得到前10000个条目并对其进行操作和更新。完成后,我需要获得下一个10000,等等。但我的问题是,我找不到任何方法可以帮助我做到这一点。基本上,我正在寻找这样的东西(如果存在的话)查找0到10000之间的数据。处理完这些数据后,我需要再次请求数据库查找10000到20000之间的数据,以此类推。

这里有一个提示:尝试为
版本
字段创建索引。所有文档最初都将以
版本
null
开头。考虑到这一点,我们可以对所有版本为null的文档执行
find()
,然后执行
limit(10000)
,以仅检索前10000个结果。在更新这些文档时,我们只需添加
$set:{version:1}
。这些文档将从后续的
find()
调用中排除。此外,通过使用此
version
字段,我们可以在将来执行类似的操作,找到所有具有
version:1
的文档,并将其更新为
version:2
。这是一个好主意,谢谢。没问题。如果这最终对你有效,请让我知道,我一定会提交这作为一个适当的答案。如果没有,那么我很乐意帮助您进一步思考,以找到一个有效的解决方案:)
version
从何而来?OP是否需要版本控制?这似乎是一个“将n个文档的总数量分割开来,并对它们执行相同的操作”之类的问题。键最小/最大拆分等。不块大小为10000有什么特别之处呢?它可以是任何数字,但在我的例子中,我需要10000,所以我在这方面做了一个例子,如果我没记错的话,MongoDB中的每个条目默认都有一个版本。我目前没有这个问题,我已经张贴了,但我会很快,当我试图谷歌搜索它,我找不到任何东西,所以我问了一个问题在这里。