【发布时间】:2016-06-28 16:21:38
【问题描述】:
在集合上使用近查询时遇到了几个问题。
我正在使用 2dsphere 索引,想靠近一些地方并进行分页。 我注意到的第一件事是偏移量在附近不起作用。所以这应该很容易用 min/maxDistance 模拟
但我不知道如何使工作查询 minDistance 或 maxDistance 似乎不起作用。
以下是我正在使用的命令:
db.Place.runCommand({ "geoNear": "Place", "near": [ 49, 14 ], "spherical": true, "query": [ ], "distanceMultiplier": 6378.137, "minDistance": 60 });
db.Place.runCommand({ "geoNear": "Place", "near": [ 49, 14 ], "spherical": true, "query": [ ], "distanceMultiplier": 6378.137 });
db.Place.runCommand({ "geoNear": "Place", "near": [ 49, 14 ], "spherical": true, "query": [ ], "distanceMultiplier": 6378.137, "maxDistance": 60 });
什么时候设置 minDistace 将输出 0 结果,我输入什么数字都没有关系。同样在 stats 中是 nscanned 1,这是错误的,应该是 299,这是索引中的文档数。
和 3. 将输出完全相同的 100 个结果(当序列化实体很大并且我不需要的 100 个结果很慢时,这也是问题)并且 nscanned 是 299。
这是我的索引:
{
"v" : 1,
"name" : "coordinates_2dsphere",
"ns" : "mydb.Place",
"sparse" : false,
"2dsphereIndexVersion" : 3
}
我正在使用 DoctrineODM 和 mongodb 3.2.6
【问题讨论】:
标签: mongodb