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

मोंगो में $near और $nearSphere में क्या अंतर है?

कीवर्ड sphere . है $near के बीच अंतर करने के लिए और $nearSphere .

जैसा कि आप जानते हैं, $nearSphere गोलाकार ज्यामिति का उपयोग करके दूरी की गणना करने के लिए कहा गया है। यह अर्थ मानचित्र प्रक्षेपण से संबंधित है (विरूपण ) जहां MongoDB 2d indexes कार्टेशियन पर आधारित है और MongoDB 2dsphere indexes Geodesic पर आधारित है .

पर्याप्त सिद्धांत, आइए कुछ उदाहरणों का उपयोग करें। मान लें कि हमारे पास नीचे दो दस्तावेज़ हैं:

db.map.insert({ "_id": "Westfield London", "location": [ -0.22157, 51.507176 ] });
db.map.insert({ "_id": "Green Lanes Shopping Centre", "location": [ -0.098092, 51.576198 ] });

दोनों ऑपरेटरों के लिए मैनुअल निर्दिष्ट करता है कि हम इसका उपयोग कर सकते हैं:

इंडेक्स:2dsphere , क्वेरी:GeoJSON

db.map.createIndex({"location": "2dsphere"});

db.map.find({"location":{"$nearSphere":{"$geometry":{"type":"Point", "coordinates":[ -0.127748, 51.507333 ] }}}});

db.map.find({"location":{"$near":{"$geometry":{"type":"Point", "coordinates":[ -0.127748, 51.507333 ]}}}});

इस मामले में, दोनों प्रश्न एक ही परिणाम लौटाएंगे, क्योंकि अनुक्रमणिका 2dsphere . में संग्रहीत है .

परिणाम:

[ /* $nearSphere */
    {"_id" : "Westfield London"},
    {"_id" : "Green Lanes Shopping Centre"}
]
[ /* $near */
    {"_id" : "Westfield London"},
    {"_id" : "Green Lanes Shopping Centre"}
]

इंडेक्स:2d , क्वेरी:लीगेसी कोऑर्डिनेट्स

db.map.createIndex({"location": "2d"});

db.map.find({"location":{"$nearSphere":[ -0.127748, 51.507333 ]}});

db.map.find({"location":{"$near":[ -0.127748, 51.507333 ]}});

यह वह जगह है जहां अंतर होता है, $nearSphere . के लिए परिणाम सूचकांक के बावजूद गोलाकार रूप से गणना की जाती है, जबकि $near फ्लैट प्रक्षेपण में गणना की जाती है।

परिणाम:

[ /* $nearSphere */
    {"_id" : "Westfield London"},
    {"_id" : "Green Lanes Shopping Centre"}
]
[ /* $near */
    {"_id" : "Green Lanes Shopping Centre"},
    {"_id" : "Westfield London"}
]

देखें जिस्ट:JS टेस्ट स्क्रिप्ट उपरोक्त उदाहरण के। MongoDB v3.4.4 का उपयोग करके इसका परीक्षण किया गया।

भू-स्थानिक अनुक्रमणिका और क्वेरी भी देखें .




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Node.js . के माध्यम से MongoDB में दस्तावेज़ सम्मिलित करते समय त्रुटि

  2. त्रुटि संदेश:MongoError:खराब प्रमाणीकरण URI स्ट्रिंग के माध्यम से विफल रहा

  3. mongodb.countDocuments धीमा होता है जब परिणाम सेट बड़ा होता है, भले ही अनुक्रमणिका का उपयोग किया जाता हो

  4. क्या विकिपीडिया का मानचित्र कम करने की व्याख्या गलत है?

  5. मोंगोडब खोज () क्वेरी:केवल अद्वितीय मान लौटाएं (कोई डुप्लिकेट नहीं)