使用MongoDB 2dsphere存储GEOJSON,在某些lat/lng存储上,我不断遇到以下错误:

{
  "code": 16755,
  "index": 0,
  "errmsg": "Can't extract geo keys: { _id: ObjectId('586ff135b79aa00b84181bfb'), name: \"Austin\", slug: \"Austin\", description: \"\", twitter: \"\", facebook: \"\", instagram: \"\", author: ObjectId('57b60fed8620b56af460d5c5'), tags: [], created: new Date(1483731253640), location: { address: \"Austin, TX, United States\", coordinates: [ 30.267153, -97.74306079999997 ], type: \"Point\" }, __v: 0 }  longitude/latitude is out of bounds, lng: 30.2672 lat: -97.7431",
  "op": {
    "name": "Austin",
    "slug": "Austin",
    "description": "",
    "twitter": "",
    "facebook": "",
    "instagram": "",
    "author": "57b60fed8620b56af460d5c5",
    "_id": "586ff135b79aa00b84181bfb",
    "tags": [

    ],
    "created": "2017-01-06T19:34:13.640Z",
    "location": {
      "address": "Austin, TX, United States",
      "coordinates": [
        30.267153,
        -97.74306079999997
      ],
      "type": "Point"
    },
    "__v": 0
  }
}

我似乎不明白为什么它不喜欢lat/lng坐标.

以下是我的位置字段模式:

  location: {
    type: { type: String, default: 'Point' },
    coordinates: [Number],
    address: String
  },

索引为2dsphere:

storeSchema.index({ location: '2dsphere' });

我能看到的唯一奇怪的事情是错误信息:

longitude/latitude is out of bounds, lng: 30.2672 lat: -97.7431",

lat/lng比我输入的要短——不确定这是否与此有关.

推荐答案

哦,哇-我不确定是谁决定的,但Mongodb希望你存储为[lng, lat],而不是像世界上其他任何东西一样存储为[lat,lng].

:|

Mongodb相关问答推荐

为什么AllowDiskUse不能在$GROUP阶段的聚合管道中工作?

如何在Mongodb Mongoose Nodejs中提取不等于一组值的字段

如何将交易列表变成 token 数量的对象?

如何替换mongodb中的动态键?

在mongoose 中按键查找嵌套对象

类型错误:db.close is not a function

Mongoexport 在日期范围内使用 $gt 和 $lt 约束

Mongo:统计一组文档中单词出现的次数

如何在 $lookup Mongodb 的 LocalField 中将字符串转换为 objectId

NoSql 参考数据

使用管道聚合的 Spring Data MongoDB 查找

当前的 URL 字符串解析器已弃用

判断 mongoDB 是否连接

C# MongoDB 驱动程序 - 如何使用 UpdateDefinitionBuilder?

Mongoose:查询starts with

从 mongo 结果中删除 _id

未找到 MongoDB 数据/数据库

MongoDB:删除唯一约束

AsQueryable 方法是否在新的 Mongodb C# 驱动程序 2.0rc 中离开?

使用 Mongoose ORM 的杀手锏是什么?