MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

MongoDB क्वेरी :$नियर एग्रीगेशन के साथ

आपको $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

के बजाय पते की आवश्यकता न हो।


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. फ़ील्ड के उच्चतम मूल्य के लिए नेस्टेड दस्तावेज़ों की क्वेरी सरणी

  2. oauth2-server-laravel को laravel-mongodb . के साथ कॉन्फ़िगर करना

  3. स्प्रिंग डेटा MongoDB और/या एकाधिक वैकल्पिक पैरामीटर के साथ क्वेरी

  4. स्प्रिंग डेटा MongoDB:BigInteger ObjectId रूपांतरण के लिए

  5. Mongoimport का उपयोग करके फ़ाइल से mongodb में json आयात करना