查询性能有点奇怪...我需要运行一个查询,它会对文档进行总数计算,还可以返回一个可以限制和偏移的结果集.
所以,我总共有57个文档,用户希望用10个文档抵消20个文档.
我可以想出两种方法,首先是查询所有57个文档(作为数组返回),然后使用array.返回他们想要的文件.第二个选项是运行两个查询,第一个使用mongo的原生"count"方法,然后使用mongo的原生$limit和$skip聚合器运行第二个查询.
你认为哪一个能更好地扩展?在一个查询中完成这一切,还是运行两个独立的查询?
编辑:
// 1 query
var limit = 10;
var offset = 20;
Animals.find({}, function (err, animals) {
if (err) {
return next(err);
}
res.send({count: animals.length, animals: animals.slice(offset, limit + offset)});
});
// 2 queries
Animals.find({}, {limit:10, skip:20} function (err, animals) {
if (err) {
return next(err);
}
Animals.count({}, function (err, count) {
if (err) {
return next(err);
}
res.send({count: count, animals: animals});
});
});