我的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);
});
此查询返回所有元素。我该如何解决上述问题?
答案 0 :(得分:3)
var query2 = JenkinsTestModel.find()
.where('jobname date')
.skip(100)
.limit(100)
.exec(function (err, job) {
if (err) throw err;
console.log(job);
});
注意:来自 docs
cursor.skip()方法通常很昂贵,因为它需要 服务器从集合或索引的开头走到get 开始返回结果之前的偏移或跳过位置。如 offset(例如上面的pageNumber)增加,cursor.skip()将成为 更慢,更密集的CPU。使用更大的集合,cursor.skip() 可能会成为IO界限。