我得到了这个查询:
var aggregate = null;
if (lat1 && lon1) {
aggregate = Tutor.aggregate([
{
"$geoNear":
{
"near":
{
"type": "Point",
"coordinates": [lon1, lat1]
},
"distanceField": "distance",
"spherical": true,
"maxDistance": radius
}
},
{
$match: match
}
]);
} else {
aggregate = Tutor.aggregate([
{
$match: match
}
]);
}
Tutor
.aggregatePaginate(aggregate, options, function (err, result, pageCount, count) {
if (err) {
return res.status(400).send(err);
}
else {
var opts = [
{ path: 'levels', select: 'name' },
{ path: 'subjects', select: 'name' },
{ path: 'assos', select: 'name' }
];
Tutor
.populate(result, opts)
.then(result2 => {
return res.send({
page: page,
perPage: perPage,
pageCount: pageCount,
documentCount: count,
tutors: result2
});
})
.catch(err => {
return res.status(400).send(err);
});
}
})
我想知道结果的总大小。
为什么?
因为,事实上,我没有得到应该得到的所有结果。 (30个中只有18个)...根据这篇文章:Mongo $geoNear query - incorrect nscanned number and incorrect results
可能是由于mongodb对$ GeoNear的结果限制为16 MB。这就是为什么我想通过了解返回的文档总数/重量来检查这是否是我的问题的原因。
谢谢!