MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Mongodb-Suchabfrage mit $near und Koordinaten funktioniert nicht

Es scheint, dass Sie das GeoJSON-Format verwenden müssen, wenn Ihre Daten auch im GeoJSON-Format vorliegen, wie Ihre. Wenn Sie verwenden:

db.collectionname.find({
    "location": {
        $near: {
            $geometry:
                { type: "Point", coordinates: [50.0, -0.1330] }, $maxDistance: 500
        }
    }
})

es sollte funktionieren. Ich könnte Ihren Fehler mit dem GeoJSON-Speicherformat für das Feld replizieren, aber was die Dokumente als Legacy-Punkte im Abfrageausdruck bezeichnen. Ich denke, die Dokumentation ist etwas unklar, da sie vorschlägt, dass Sie sowohl GeoJSON- als auch Legacy-Koordinaten mit einem 2dsphere-Index verwenden können 2dsphere

Ich verwende 2.4.10 für das, was es wert ist, da es in der Version 2.4 einige große Änderungen an Spatial gab.