【发布时间】:2015-11-18 16:45:26
【问题描述】:
我收藏的文档的相关字段如下:
{
point: {
type: Point,
coordinates: [15.6446464, 45.231323]
}
score: 24
}
我在point 上有一个2dsphere 索引,在score 上有一个“正常”的降序索引。
我想运行以下查询:
db.properties.find({point: {$geoWithin: <some polygon> }}).sort({score: -1}).limit(2000)
有什么方法可以让 mongo 使用point 上的索引作为find 部分,然后使用score 上的索引进行排序?
该集合有大约 700k 个文档,find 部分可以返回数万个文档,每个文档最多有一个 MB。
当前的问题是,当使用point 索引时,返回的集合的大小太大,无法在内存中排序。使用score 索引时,查询太慢,因为是对坐标进行顺序扫描。
【问题讨论】:
标签: mongodb