关于mongo

时间:2016-01-12 10:02:58

标签: mongodb geospatial

我的收集结构如下:

{
name: "abcd",
location: {
type: "MultiPoint",
coordinates: [
[-73.57131,45.49758],[-73.57055,45.4984],[-73.57022,-73.57022],[-73.56968,45.49932],[-73.56896,45.50007],[-73.56807,45.50103],[-73.56722,45.50171]
]
}
}

我使用

创建了索引
db.testCollection.createIndex( { coordinates: "2dsphere" })

现在我想从列表位置找到附近的点(假设)[ - 73.56967,45.49933],这些点位于我的文档中。

所以我查询了

db.testCollection.find({ location:{ $near:{ $geometery:{ type:"Point", coordinates:[-73.56967,45.49933] }, $minDistance:0,$maxDistance:250}}})

但我收到了错误:

Error: error: {
    "$err" : "Can't canonicalize query: BadValue $geometry is required for geo near query",
    "code" : 17287
}

有人可以帮帮我!

2 个答案:

答案 0 :(得分:1)

拼写错误。 使用$geometry代替$ geomet e ry。

尝试以下查询

db.testCollection.find(
    { location:{ $near:{ $geometry:{ type:"Point", coordinates:[-73.56967,45.49933] }, 
                 $minDistance:0,$maxDistance:250}}
    })

答案 1 :(得分:0)

  1. 索引名称不正确

    db.testCollection.createIndex( { location: "2dsphere" })

  2. 作为@mrp 的回答有一个拼写错误。使用 $geometry 而不是 $geometery。