我正在尝试为我的一个班级学习MongoDB并使用拉链数据集(http://media.mongodb.org/zips.json),我试图在这些点内找到拉链:[ - 80,30],[ - 90,30] ,[ - 90,40]和[-80,40]。
在引用文档here
之后我提出了这个问题:
db.zips.find({loc: {$geoWithin : {$geometry : {type : "polygon", coordinates : [[[-80, 30], [-90, 30], [-90, 40], [-80, 40], [-80, 30]]]}}}})
我认为它会起作用,但我收到以下错误:
Error: error: {
"waitedMS" : NumberLong(0),
"ok" : 0,
"errmsg" : "unknown GeoJSON type: { type: \"polygon\", coordinates: [ [ [ -80.0, 30.0 ], [ -90.0, 30.0 ], [ -90.0, 40.0 ], [ -80.0, 40.0 ], [ -80.0, 30.0 ] ] ] }",
"code" : 2
}
这样做的正确方法是什么?
答案 0 :(得分:1)
似乎您使用了错误的地理位置类型,应该Polygon
尝试:
db.zips.find({
loc: {
$geoWithin: {
$geometry: {
type: "Polygon",
coordinates: [
[
[
-80, 30
],
[
-90, 30
],
[
-90, 40
],
[
-80, 40
],
[-80, 30]
]
]
}
}
}
})