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

MongoDB 'impossibile trovare l'indice per la query $geoNear'

Pochi problemi, hai creato i tuoi indici sulla collezione foo del database foo, ma stai interrogando la collezione bar . Devi essere nella collezione corretta.

Leggendo il documento che hai inserito devi aggiungere un indice "2dsphere" per supportare gli oggetti geoJson. Questo indice deve trovarsi sull'elemento "punto" dei tuoi documenti, quindi prova

db.bar.createIndex({point:"2dsphere"});

È quindi possibile eseguire una query come segue fornendo un geoJson obj per la query:

db.bar.find(
   { point :
       { $near :
          {
            $geometry : {
               type : "Point" ,
               coordinates : [-84.27326978424058, 30.443902444762696] },
            $maxDistance : 1
          }
       }
    }
)