在mongoDB查询中包装

时间:2015-08-30 13:27:57

标签: node.js mongodb

我正在开发一个创建电视节目表的node.js应用程序,我有一个mongo数据库,其中包含频道列表[{number:1},{number:2} .....]。 我需要支持带有循环响应的分页,IE,如果我们有100个频道,用户请求从频道98开始的5个频道,响应应该是98,99,100,1,2。(值得一提的是我不知道最后一个频道是什么,以及98之后的下一个频道是99还是104) 有没有办法在单个查询中实现它,还是我必须使用2个查询?

2 个答案:

答案 0 :(得分:1)

您必须在2个查询中执行此操作。然而,在大多数情况下,您将在第一次查询中获得足够的结果,即,如果用户查询任何较低的频道。这取决于哪些频道当然最受欢迎。所以大多数时候,你不会有2个查询的性能。

您还可以为number字段建立索引,以提高效果。根据集合大小,这可能很重要,因为此用例需要在number字段上进行排序,并将其置于查询条件中。

答案 1 :(得分:-1)

如果您使用的是mongoose,可以使用skip()语句:

Chanel.find({}).skip().exec(function (err, chanels) {
    // your code here
})