Sto solo cercando di ottenere una semplice query near
funzionante. Ecco un esempio del mio documento.
{"point":
{"type": "Point",
"coordinates": [30.443902444762696, -84.27326978424058]},
"created_on": {"$date": 1398016710168},
"radius": 180,
"user": {"$oid": "53543188eebc5c0cc416b77c"},
"_id": {"$oid": "53544306eebc5c0ecac6cfba"},
"expires_on": {"$date": 1399831110168}
}
e con mongod ho provato il comando:
db.bar.find({point: {$near: [-84.26060492426588, 30.45023887165371]}});
ma ottengo questo errore:
error: { "$err" : "Unable to execute query: error processing query: ns=foo.bar skip=0\nTree: GEONEAR field=point maxdist=1.79769e+308 isNearSphere=0 || First: notFirst: full path: point\nSort: {}\nProj: {}\n planner returned error: unable to find index for $geoNear query", "code" : 17007 }
Forse il mio google fu non è così netta oggi, ma non riuscivo a trovare nulla. Inoltre, ho eseguito il comando indice di sicurezza. La mia intenzione è che queste siano le posizioni delle mappe.
db.bar.ensureIndex({a:1});
db.bar.ensureIndex({geo:"2d"});
Ottimo, risolto il problema utilizzando: 'db. .ensureIndex ({point: "2dsphere"}); ' –
AfromanJ
Grazie amico, funziona come un fascino .. –
Si noti che sine' 3.0.0' 'ensureIndex' [è stato deprecato] (https: //docs.mongodb. com/manual/reference/method/db.collection.ensureIndex /) ed è un alias per 'createIndex' (risposta modificata di conseguenza) –