使用MongoDB 3.2我试图对点的集合使用2dsphere查询。
可以说我有一个集合cust_5_abcd与2dsphere指数the_geom场。
集合中添加一个几何:
db.cust_5_abcd.insert({
"chps0" : "Texte d'une ligne",
"the_geom" : {
"type" : "Point",
"coordinates" : [
1.032715,
40.380028
]
}})
现在我想查询使用$ geoWithin获取特定的多边形内部的所有数据这一点。这是我得到不同的结果,如果我使用$几何与GeoJSON定义,或与$多边形和严格的坐标。也许文件中的某些内容丢失或者我误解了。
随着$几何没有给出结果:
db.cust_5_abcd.find( { the_geom:
{ $geoWithin:
{ $geometry:
{
"type": "Polygon",
"coordinates": [
[
[ -16.237793, 40.162083 ],
[ -16.237793, 51.835778 ],
[ -13.776855, 51.835778 ],
[ -13.776855, 41.426253 ],
[ 14.765625, 41.426253 ],
[ 14.765625, 40.162083 ],
[ -16.237793, 40.162083 ]
]
]
}
}
}
})
随着$多边形返回我的观点:
db.cust_5_abcd.find({ the_geom:
{ $geoWithin:
{ $polygon:
[
[ -16.237793, 40.162083 ],
[ -16.237793, 51.835778 ],
[ -13.776855, 51.835778 ],
[ -13.776855, 41.426253 ],
[ 14.765625, 41.426253 ],
[ 14.765625, 40.162083 ],
[ -16.237793, 40.162083 ]
]
}
}
})
这有点奇怪,特别是query.explain(“executionStats”)显示第一个查询使用索引(如果已创建),另一个不是... – profesor79