我的收集结构如下:
{
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
}
有人可以帮帮我!
答案 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)
索引名称不正确
db.testCollection.createIndex( { location: "2dsphere" })
作为@mrp 的回答有一个拼写错误。使用 $geometry 而不是 $geometery。