MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongodb find query avec $near et les coordonnées ne fonctionnent pas

Il semble que vous deviez utiliser le format GeoJSON si vos données sont également au format GeoJSON, comme les vôtres. Si vous utilisez :

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

ça devrait marcher. Je pourrais reproduire votre erreur en utilisant le format de stockage GeoJSON pour le champ, mais ce que les docs appellent des points hérités dans l'expression de requête. Je pense que les documents sont un peu flous dans la mesure où ils suggèrent que vous pouvez utiliser à la fois GeoJSON et les coordonnées héritées avec un index 2dsphere 2dsphère

J'utilise la version 2.4.10, pour ce qu'elle vaut, car il y a eu de gros changements dans l'espace dans la version 2.4.