【发布时间】:2017-03-12 12:56:17
【问题描述】:
我在数据库中有一个包含“多边形”属性的文档,据我所知,它是一个有效的 GeoJSON 对象。我想使用 GeoJSON Point 对象搜索数据库,以查找多边形属性中的多边形包含该点的文档。为此,我使用 $geoIntersects 运算符,但是,每当我执行查找时,MongoDB 都会返回错误:[错误:无法使用 $geoIntersects]。
数据库中唯一的对象:
{
"_id": ObjectId("581540795fd2da1b188eb09c"),
"name":"String",
"polygon":{
"coordinates":[
[ -90, -180 ],
[ 90, -180 ],
[ 90, 180 ],
[ -90, 180 ],
[ -90, -180 ]
],
"_id": ObjectId("581540795fd2da1b188eb09d"),
"name": "String",
"type": "Polygon"
},
"__v":0
}
我正在使用猫鼬搜索数据库。用于执行搜索的查询:
{
polygon: {
$geoIntersects: {
$geometry: {
type: 'Point',
coordinates: [<long>, <lat>]
}
}
}
}
如果我将纬度和经度设置为简单的值,例如 (0, 0) 或 (1, 1)。它返回错误。根据我在别处阅读的内容,应该返回此错误的唯一原因是因为数据库中的文档不是有效的 GeoJSON 对象,但我看不出数据库中唯一的对象有任何问题。
【问题讨论】:
标签: node.js mongodb mongoose geojson