我想在7500万份文件的集合中找到特定广场内的地理位置。
此查询永远需要:
db.tracks.count({"loc":{"$geoWithin":{"$box":[[9.27225895239,41.58687259712],[9.28436304761,41.59586540288]]}}})
当我用{ nLon: { $gt: long2, $lt: long1 }, nLat: { $gt: lat2, $lt: lat1 }
替换查询时,只需几秒钟。
这是一个示例文档:
{
"_id" : ObjectId("55d5d8555df7f55addd16e46"),
"nLon" : 2,
"nLat" : 48,
"loc" : {
"type" : "Point",
"coordinates" : [
2,
48
]
}
}
纬度/经度有两个索引,loc
有一个2dsphere索引:
{
"v" : 1,
"key" : {
"loc" : "2dsphere"
},
"name" : "loc_2dsphere",
"ns" : "locate.tracks",
"2dsphereIndexVersion" : 2
}
两个查询最终得到完全相同的结果:~4000
我错过了什么吗?或者2dsphere索引对于正方形而言是坏的
mongod --version
db version v3.0.4