如何按顺序顺序获取n组文档Mongodb

时间:2014-01-14 08:34:19

标签: node.js mongodb mongojs

我的服务器路由为“q = word / s = 0 / t = 5”,其中q是查询字符串,s是起始文档,t是限制。

因此,对于第一个请求,我将根据q查询文档,并显示检索到的结果的0到5的结果。

对于下一个请求,比如q = word / s = 6 / t = 5,我必须显示从6号文件到10号文件的文件,依此类推。

我有什么方法可以在mongo中实现这一目标。我正在使用nodejs和mongojs。 任何帮助表示赞赏。

var words = req.params.q.split(" ");
    var patterns = [];
    // Create case insensitve patterns for each word
    words.forEach(function(item){
      patterns.push(caseInsensitive(item));
    });

db.collection('mycollection', function(err, collection) {
          collection.find({index : {$all: patterns }}).skip((s-1)*t).limit(t).toArray(function(err, items) {
            if( err || !items) {
              res.header("Access-Control-Allow-Origin", "*");
              console.log('nothing');
              res.send([]);
            } else {
              res.header("Access-Control-Allow-Origin", "*");
              console.log(items);
              res.send(items);
            }
          });   

1 个答案:

答案 0 :(得分:0)

您可以使用聚合框架来执行此操作,因为问题中的示例不会产生您描述的结果。

以下是您可以用于为服务器提供的每个查询的查询

collection.aggregate([
                      { $skip : s }, 
                      { $match : { index : { $all : patterns } } },
                      { $limit : t} 
                      ])