使用 java 的 MongoDb $near 查询没有给出正确的位置

Posted

技术标签:

【中文标题】使用 java 的 MongoDb $near 查询没有给出正确的位置【英文标题】:MongoDb $near query in using java not giving proper locations 【发布时间】:2014-12-26 12:23:36 【问题描述】:

我对 mongodb 中的 $near 有疑问

我必须找出半径周围特定位置的用户。

我有位置[ 18.58528075595879 , 73.73364686965942],我想从250码半径范围内搜索用户。

我有 users 表,其中有 gpsloc 数组。 我在 gpsloc 上放了索引“2d”

db.users.ensureIndex(loc: "2d")

我正在尝试的查询

 "gpsloc" :  "$near" : [ 18.58528075595879 , 73.73364686965942] , "$maxDistance" : 228.6 , "height" : "Average" , "hair" : "Brown" , "gender" : "Male"

maxDistance (distance in meters/km/?) 的作用

【问题讨论】:

【参考方案1】:

maxDistance 需要多少(以米/公里/公里为单位的距离?)

根据docs:

要使用旧坐标指定点,$near 需要二维索引 并具有以下语法:

$near:[ <x>, <y> ],$maxDistance:<distance in radians>

应该为参数提供radians 中的值。

对于2dsphere 索引,参数接受meters 中的输入。

【讨论】:

但是如何将250米转换为弧度,我想跟踪250码内的用户。请帮忙。 通过放置 2dsphere 索引我得到以下错误:"$err" : "can't parse query (2dsphere): $near: [ 18.5874338, 73.7380072 ], $maxDistance: 240.0 ",

以上是关于使用 java 的 MongoDb $near 查询没有给出正确的位置的主要内容,如果未能解决你的问题,请参考以下文章

Mongodb $near 二级排序顺序

MongoDB $near 查询准确性问题

$near $unwind MongoDB 地理空间

Mongodb $near 查询 120 万份文档耗时 6 秒

如何在 mongoid dsl 中编写 mongodb $near 查询?

具有稀疏复合索引的 MongoDB $near 地理空间查询错误 13311