$geoNear を使用する必要があります 、V2.4以降を使用している場合のみ
db.users.aggregate(
{$geoNear : {
near: [-1, -2],
distanceField: "distance",
query : {"_id" : "id1"},
uniqueDocs: true,
maxDistance : 2000
}})
編集:質問に編集した後
次のクエリは場所と距離を提供しますが、内部(配列要素)_id
は取得しません。db.users.aggregate(
{$geoNear : {
near: [-1, -2],
distanceField: "distance",
includeLocs: "location",
query : {"_id" : "id1"},
maxDistance : 2000
}},
{$project : {"location" : 1, "_id" : 0, "distance" : 1}}
)
includeLocs
が追加されていることに注意してください uniqueDocs: true
の削除
内部の_idも取得するには、(この例に従って)巻き戻し、条件付きでプロジェクトを作成する必要がありますが、_idの代わりにアドレスが必要でない限り、それだけの価値はないと思います。