Ich habe ein Dokument in der Datenbank, das eine "Polygon" -Eigenschaft enthält, die, soweit ich weiß, ein gültiges GeoJSON-Objekt ist. Ich möchte die Datenbank mit einem GeoJSON Point-Objekt durchsuchen, um Dokumente zu finden, bei denen das Polygon in der Polygon-Eigenschaft den Point enthält. Dazu verwende ich den $ geoInterectsects-Operator, aber jedes Mal, wenn ich die Suche vorbereite, gibt MongoDB den Fehler zurück: [Fehler: Kann $ geoIntersects nicht verwenden].
Das einzige Objekt in der Datenbank:
{
"_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
}
I Mungo die Datenbank durchsuchen verwenden. Die Abfrage, die verwendet wird, um die Suche zu Preform:
{
polygon: {
$geoIntersects: {
$geometry: {
type: 'Point',
coordinates: [<long>, <lat>]
}
}
}
}
Wenn ich die Breite und Länge auf etwas einfach eingestellt, sagt (0, 0) oder (1, 1). Es gibt den Fehler zurück. Entsprechend dem, was ich an anderer Stelle gelesen habe, ist der einzige Grund, warum dieser Fehler zurückgegeben werden sollte, weil die Dokumente in der Datenbank keine gültigen GeoJSON-Objekte sind, aber ich kann nichts falsches mit dem einzigen Objekt in der Datenbank sehen.