【问题标题】:Mongo GeoLocation query results in errorMongo GeoLocation 查询导致错误
【发布时间】:2014-02-06 12:09:45
【问题描述】:

我使用下面的查询已经有一段时间了,它按预期工作。今天我从终端删除了users 集合中的所有文档并获取了Mongo Error

查询:

neighbors query: {
  "geoInfo.location": {
    "$near": {
      "$maxDistance": 160000,
      "$geometry": {
        "type": "Point",
        "coordinates": [
          101.69558548629793,
          3.046124475906546
        ]
      }
    }
  },
  "gender": "female",
  "_id": {
    "$nin": [
      "6f6ca0ecdfc96c74cc90624ce8e915cb"
    ]
  }
}

错误:

[MongoError: point not in interval of [ -180, 180 ] :: caused by :: { 0: 160000.0, 1: 0.0 }] name: 'MongoError'

以上查询给出 -

error: {
    "$err" : "point not in interval of [ -180, 180 ] :: caused by :: { 0: 160000.0, 1: 0.0 }",
    "code" : 16433
}

在 mongo 控制台上。

谢谢!

【问题讨论】:

  • 你能解决这个问题吗?根据错误消息,您的数据库中似乎可能有一个经度为 160000 的 geoInfo.location 点?您提到删除users 集合中的所有文档,但查询似乎是针对neighbors;实际上应该为空的 neighbors 集合吗?

标签: mongodb geospatial mongodb-query


【解决方案1】:

据我所知,您之前提供的以米为单位的距离现在以弧度为单位。

$near 文档不是很好。想看看那个集合的indexes 吗?

Some people 使用以公里为单位的距离除以 111.12(1 度约为 111.12 公里)的简单方法

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 2015-04-04
    • 2019-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多