我有一个简单的MongoDB聚合查询:
{
"$geoNear": {
"near": {
"type": "Point",
"coordinates": [
-73.982,
40.7685
]
},
"spherical": "true",
"distanceField": "d",
"limit": 100000,
"maxDistance": 8046.7,
"query": {
"ipv": 1
}
}
},
{
"$sort": {
"created_at": -1
}
},
{
"$limit": 5
}
我的简单问题是关于查询操作顺序的。查询会扫描所有文档以匹配坐标,然后从该数据集中匹配 ipv: 1,接着按 created_at 排序,最后限制为 5 条吗?
如果是这样的话,实际上并不是这样的。我必须放置一个 "limit" 字段,否则它只会扫描最近的 100 条记录,匹配地理坐标,然后进行操作顺序。
有没有办法让 MongoDB 扫描所有记录以匹配 GPS 坐标,然后执行匹配操作?