MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Mongodb trova la query con $ vicino e le coordinate non funzionano

Sembra che tu debba usare il formato GeoJSON se anche i tuoi dati sono in formato GeoJSON, come i tuoi. Se usi:

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

dovrebbe funzionare. Potrei replicare il tuo errore utilizzando il formato di archiviazione GeoJSON per il campo, ma ciò che i documenti chiamano punti legacy nell'espressione della query. Penso che i documenti siano un po' poco chiari in quanto suggeriscono che puoi utilizzare sia GeoJSON che le coordinate legacy con un indice 2dsphere 2dsfera

Sto usando 2.4.10, per quel che vale, dato che ci sono state alcune grandi modifiche allo spazio nella versione 2.4.