0
我知道如何查询集合。但是我有一个包含100,000个记录的集合,我想每个页面只显示100个项目。然后,用户可以选择接下来的100条记录,等等......node.js mongodb游标循环客户端请求
由于此请求来自用户,因此如何在node.js上保持光标打开以便在客户端请求它时循环接下来的100个项目?
什么是标准做法?
谢谢!
我知道如何查询集合。但是我有一个包含100,000个记录的集合,我想每个页面只显示100个项目。然后,用户可以选择接下来的100条记录,等等......node.js mongodb游标循环客户端请求
由于此请求来自用户,因此如何在node.js上保持光标打开以便在客户端请求它时循环接下来的100个项目?
什么是标准做法?
谢谢!
你所指的标准做法就像分页。
您不需要始终保持光标一直打开。所有你需要确定的是你从你离开的同一个地方继续。
客户端将保留已经显示的记录数并在游标的skip()
函数内使用该数字。
例如:
record_count = 10
。record_count
。record_count
。record_count
变量现在是20请记住,你想要你的结果以某种方式进行排序,以便您的查询将始终返回不同结果(接下来的10条记录)。
我不是太熟悉蒙戈节点驱动程序,但在蒙戈外壳,您可以按如下执行查询:
db.collection.find().sort({ "time": 1 }).skip(record_count).limit(10)
如果我做什么复杂的查询,比如说 - 关键字搜索。这会在每次用户请求时执行复杂的查询,这不是问题吗? – user3658423
如果这是一个复杂的查询,您只能执行一次实际查询并将结果保存到其他集合中。然后,您将使用我所描述的相同技术来查询包含结果的集合。 – Lix