我有大量文件(约1百万),每个文件都很大(avgObjSize:13268)。每个文档都有一个地理点:
lib/session.js
我有以下索引:
Accomodation:
{
"location" : {
[...]
"geoLocation" : {
"type" : "Point",
"coordinates" : [
-42.61343486,
71.70936503
]
}
}
}
我做这个简单的查询(它应该保持85公里半径):
{
"location.geoLocation" : "2dsphere"
}
查询执行需要1到6秒,我觉得它很慢。 即使服务器不强大,它也不需要花费太多时间来获取100个文档,它似乎使用了索引,因此甚至不应该为扫描提取该区域中的文档。 我错过了什么?
这是查询统计信息
db.getCollection('Accomodation').find({
"location.geoLocation" : {
"$geoWithin" : {
"$centerSphere" : [
[
2.34682537615297,
48.8536252472747
],
0.0131543876703093
]
}
}})).limit(100)