【发布时间】:2014-08-09 10:59:03
【问题描述】:
我正在尝试使用 Mongoose geoNear 命令实现分页。 geoNear 似乎不支持跳过,我知道聚合会起作用(分页会带来性能成本)。如何将其转换为聚合查询以跳过多个文档?
exports.near = function(req, res) {
if(req.query.lat && req.query.lng) {
var point = {
type: "Point", coordinates : [Number(req.query.lng), Number(req.query.lat)]
};
var queryParams = {
spherical: true,
skip: 0,
limit: 10,
distanceMultiplier: 6371 // radians to kilometers. (The radius of the Earth is approximately 3,959 miles or 6,371 kilometers.)
};
if(req.query.q) {
var matcher = new RegExp(req.query.q, "i");
queryParams.query = {
$or: [
{'name': matcher },
{'address.full': matcher}
]
};
}
if(req.query.limit) {
queryParams.limit = parseInt(req.query.limit, 10);
}
if(req.query.offset) {
queryParams.skip = parseInt(req.query.offset, 10);
}
Venue.geoNear(point, queryParams, function(error, results, stats) {
// TODO
});
}
};
【问题讨论】:
标签: node.js mongodb mongoose geospatial aggregation-framework