Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongoose/node.js如何查询范围[20到30之间的元素]_Node.js_Mongodb_Mongoose - Fatal编程技术网

Mongoose/node.js如何查询范围[20到30之间的元素]

Mongoose/node.js如何查询范围[20到30之间的元素],node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我的mongodb表中有500个元素,例如,我只想在前100个元素之后选择100个元素。为此,请尝试使用.slice等。。但是这个查询不能正常工作。我正在使用mongoose和node.js: var query2 = JenkinsTestModel.find(); query2.where('jobname date').slice([-100 /*skip*/, 100 /*limit*/]) //i tried several different ways here query2.exe

我的mongodb表中有500个元素,例如,我只想在前100个元素之后选择100个元素。为此,请尝试使用
.slice
等。。但是这个查询不能正常工作。我正在使用mongoose和node.js:

var query2 = JenkinsTestModel.find();
query2.where('jobname date').slice([-100 /*skip*/, 100 /*limit*/]) //i tried several different ways here
query2.exec(function (err, job) {
     if (err) throw err;
     console.log(job);           
});

此查询将返回所有元素。如何解决上述问题

您可以使用方法:

var query2 = JenkinsTestModel.find()
    .where('jobname date')
    .skip(100)                          
    .limit(100)   
    .exec(function (err, job) {
         if (err) throw err;
         console.log(job);           
    });
注意:来自

cursor.skip()方法通常比较昂贵,因为它需要 服务器从集合或索引的开头开始遍历以获取 开始返回结果之前的偏移或跳过位置。作为 偏移量(如上面的页码)增加,游标.skip()将变为 速度更慢,CPU更密集。对于较大的集合,cursor.skip() 可能会被IO束缚