आपको $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
के बजाय पते की आवश्यकता न हो।