2017-08-11 2 views
0

J'essaie de mettre les données de localisation de mon application Android à la base de données mongo db. Les données sont insérées dans la base de données. Mais, lors de la récupération, je reçois une erreur disant:

" "$err" : "Unable to execute query: error processing query: ns=demo.search limit=0 skip=0\nTree: GEONEAR field=loc maxdist=1 isNearSphere=0\nSort: {}\nProj: {}\n planner returned error: unable to find index for $geoNear query", 
...   "code" : 17007 
" 

J'ai ajouté l'index de loc 2dsphere avec commande createIndex. Quel est le problème avec ma requête?

Ma requête:

db.collection('search').find(

        {"loc": 
         { $near :coords ,$maxDistance: maxDistance} 
        } 
       ); 
+0

Dans le shell 'db.getCollection ('search'). GetIndexes()' Afficher la sortie dans votre question. Afficher un document de la collection dans votre question Vous pouvez nous dire ce que vous avez autant que vous voulez, mais l'erreur dit le contraire. Montrez les détails demandés et nous pourrons vous dire ce que vous faites incorrectement. –

+0

[ { "v": 1, "clé": { "_id": 1 }, "name": "_ID_", "ns": "demo.search" }, { "v": 1, "clé": { "loc": "2dsphere" }, "name": "loc", "ns": "demo.search", "2dsphereIndexVersion": 2 } ] – User007

+0

@NeilLunn c'est ce que je reçois dans le shell – User007

Répondre

0

Got est résolu en créant un index avec 2d. Initialement, j'ai essayé 2dsphere qui était la raison pour laquelle mon code ne fonctionnait pas.