在集合上使用近查询时遇到了几个问题 .
我正在使用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结果,我输入的数字无关紧要 . 同样在统计数据中是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
1 回答
发现此查询仅在使用GeoJson点时有效 .
文件说不然:( https://docs.mongodb.com/manual/reference/operator/query/near/#op._S_near
这是工作命令:
唯一的区别是GeoJson以米为单位工作 .