Du skal bruge $geoNear , og kun hvis du bruger V2.4 og frem
db.users.aggregate(
{$geoNear : {
near: [-1, -2],
distanceField: "distance",
query : {"_id" : "id1"},
uniqueDocs: true,
maxDistance : 2000
}})
Rediger:efter redigering af spørgsmål
Forespørgslen nedenfor giver dig placering og afstand, men henter ikke det interne (array-element) _id
db.users.aggregate(
{$geoNear : {
near: [-1, -2],
distanceField: "distance",
includeLocs: "location",
query : {"_id" : "id1"},
maxDistance : 2000
}},
{$project : {"location" : 1, "_id" : 0, "distance" : 1}}
)
Bemærk tilføjelsen af includeLocs
og eliminering af uniqueDocs: true
For også at hente det interne _id, skal du (ved at følge dette eksempel) slappe af og betinget projektere eller deromkring, men jeg synes ikke det er det værd, medmindre du har brug for adressen i stedet for _id'et