【问题标题】:Node.js mongodb native driver has a "Skip" limit of 23121Node.js mongodb 本机驱动程序的“跳过”限制为 23121
【发布时间】:2015-01-30 06:16:17
【问题描述】:

我正在使用本机 mongodb 本机节点驱动程序的 1.3.23 版本: https://www.npmjs.org/package/mongodb

我必须查询大约 18 万条记录,因此我编写了一个脚本来限制多个分页请求。问题是,一旦跳过超过 23121 的任何内容,响应将不再返回结果。

如果我直接点击我的数据库,我可以返回带有任何有效跳过值的结果,所以这个问题似乎在 mongo 驱动程序级别。

我是否只需要升级到 v1.4.22(除非绝对需要,否则我会推迟升级)?任何建议将不胜感激。

【问题讨论】:

  • 我没有在 JIRA 中看到任何与此问题相关的错误。如果您确定可以复制它,您可能应该报告它。 jira.mongodb.org/browse/…
  • 不要使用跳过和限制进行分页。它的表现非常糟糕。使用排序进行分页(在 _id 上,如果除了分页之外不需要排序)。这个old SO answer 有一些细节。

标签: node.js mongodb


【解决方案1】:

我建议将 CursorStream 用于大型查询,并且我还建议至少升级到 1.4。

http://mongodb.github.io/node-mongodb-native/1.4/api-generated/cursorstream.html

【讨论】:

  • CursorStream 解决了我的问题。我仍然会为“跳过”错误创建票证,它在 v1.4.x 中也不起作用。
猜你喜欢
  • 1970-01-01
  • 2016-11-09
  • 1970-01-01
  • 2015-06-13
  • 1970-01-01
  • 2012-09-23
  • 1970-01-01
  • 1970-01-01
  • 2016-03-13
相关资源
最近更新 更多