node.js mongodb游标在客户端请求上循环

时间:2014-07-15 07:18:16

标签: node.js mongodb

我知道如何查询集合。但是我有一个包含100,000条记录的集合,我想每页只显示100个项目。然后,用户可以选择接下来的100条记录,依此类推......

由于此请求来自用户,如何在node.js上打开游标以在客户端请求时循环接下来的100个项目?

标准做法是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

您所指的内容的标准做法就像分页一样。

您不需要一直打开光标。所有你需要确保的是你从你离开的同一个地方继续。

客户端将保留已经显示的记录数,并在光标的skip()函数内使用该数字。


例如:

  • 向客户提供10条记录。 record_count = 10
  • 客户请求更多记录,并在请求中包含record_count
  • 服务器在skip参数中的另一个查询中使用提供的record_count
  • 服务器向客户端返回另外10条记录。
  • 客户端将record_count变量更新为现在为20.
  • 冲洗,重复......

请注意,您希望以某种方式对结果进行排序,以便您的查询始终返回不同的结果(接下来的10条记录)。


我不太熟悉mongo的节点驱动程序,但在mongo shell中,您将按如下方式执行查询:

db.collection.find().sort( { "time": 1 } ).skip( record_count ).limit( 10 )