我对这一点感到有点难过。
我使用以下架构使用Mongoose保存地理数据:
var placeSchema = new Schema ({
product: {type:Schema.ObjectId, ref:'Product', required:true},
text : String,
geo : { type: [Number], index: { type: '2dsphere', sparse: true } },
geo_name : String,
dateAdded: {type: Date, default: moment},
});
最近几周前,所有的坐标对都在保存并成功检索。但是,现在,某些坐标对使Mongo抱怨:
{[MongoError:insertDocument ::由:: 16755引起无法从对象,格式错误的几何体中提取地理键?:{_ id:ObjectId(' 54affc5054096502ad086a81'),product:ObjectId(& #39; 54af3f99c4528c296590426c'),geo_name:" Vancouver,BC,Canada",text:"",lastupdated:new Date(1420819536000),dateAdded:new Date(1420819536000) ,geo:[49.2827291,-123.1207375],__ v:0}] 名称:' MongoError', 代码:16755, 错误:' insertDocument ::由:: 16755引起无法从对象,格式错误的几何体中提取地理键?:{_ id:ObjectId(\ _' 54affc5054096502ad086a81 \'),产品:ObjectId(\' 54af3f99c4528c296590426c \'),geo_name:" Vancouver,BC,Canada",text:"",lastupdated:new Date(1420819536000), dateAdded:new Date(1420819536000),geo:[49.2827291,-123.1207375],__ v:0}' }
(棘手的是,几周前工作的一些配对现在正在发生这种错误。)
例如,这些配对工作:
[33.7489954,-84.3879824] (美国佐治亚州亚特兰大市)
[41.8781136,-87.62979819999998] (这是美国伊利诺伊州芝加哥市)
这些不会导致格式错误的几何错误:
[49.2827291,-123.12073750000002] (加拿大不列颠哥伦比亚省温哥华)
[37.7749295,-122.41941550000001] (美国加利福尼亚州旧金山)
有什么想法吗?我尝试过有点不同地格式化2dsphere字段,但仍然遇到同样的问题。
答案 0 :(得分:1)
似乎是MongoDB and GeoJSON is longitude, latitude的坐标对的顺序 - 而不是相反。那么问题是第二个数字超出(-90,90)的任何东西都超出界限。