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

संपूर्ण एम्बेडेड दस्तावेज़ मान पर MongoDB श्रेणी क्वेरी

आपके द्वारा लिंक किए गए दस्तावेज़ में कमांड को कुछ पंक्तियों में नोट करें:

यह आपको बता रहा है कि गैर-मौजूद फ़ील्ड और शून्य पर सेट फ़ील्ड को विशेष रूप से माना जाता है।

दस्तावेज़ों के लिए {} और {a: null} सॉर्ट क्रम में समतुल्य होने के लिए, सॉर्ट एल्गोरिथम को अनुपलब्ध सॉर्ट फ़ील्ड को मौजूद होने पर विचार करना चाहिए, और उसका मान null होना चाहिए ।

यदि आप स्पष्ट रूप से अनुपलब्ध फ़ील्ड जोड़ते हैं, तो यह देखने के लिए कि यह कैसा दिखता है, क्रम अधिक समझ में आता है।

फ़िल्टर {tag: { $gte: { baz: MinKey() }}} {_id: 1, tag: {bar: "BAR"}} . पर लागू किया गया अनिवार्य रूप से तुलना कर रहा है {baz: MinKey()} {baz: null, bar: "BAR"} . के साथ ।

आपके द्वारा लिंक किए गए दस्तावेज़ के शीर्ष के पास यह बताता है कि MinKey null . से कम है , इसलिए यह उचित क्रम है।

संपादित करें

सामान्य तौर पर, क्वेरी करना सबसे अधिक कुशल होता है जब फ़ील्डनाम स्वयं डेटा नहीं होते हैं। एक सारणीबद्ध डेटाबेस के संदर्भ में, किस कॉलम में "baz" होगा?

स्कीमा में थोड़ा सा परिवर्तन इस प्रकार की क्वेरी को सरल बना देगा। {tagname: tagvalue} . के बजाय , {k:tagname, v:tagvalue} . का उपयोग करें . फिर आप tag.k . को इंडेक्स कर सकते हैं और/या tag.v , और tag.k . पर क्वेरी करें "baz" टैग वाले सभी दस्तावेज़ों को खोजने के लिए, असमानता संचालन वाले टैग को क्वेरी करना अधिक सहजता से काम करेगा।

db.collection.find({"tag.k":{$gte:"baz"}})

elemMatch जैसे

. के साथ सटीक मिलान किया जा सकता है
db.collection.find({tag: {$elemMatch:{k:"baz",v:"BAZ"}}})

यदि आपको वास्तव में {tagname: tagvalue} . को शामिल करने के लिए लौटाए गए दस्तावेज़ों की आवश्यकता है , $arrayToObject एग्रीगेशन ऑपरेटर ऐसा कर सकता है:

db.collection.aggregate([
  {$match: {
      "tag.k": {$gte: "baz"}
  }},
  {
    $addFields: {
      tag: {$arrayToObject: [["$tag"]]}
  }}
])

खेल का मैदान




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. IdMemberMap प्रतिनिधित्व क्रमांकन विकल्प का उपयोग कर रिक्त है

  2. पर्ल में क्वेरी ISODate समय

  3. नेस्टेड मोंगोडब दस्तावेज़ और समूह रखने में घटनाओं की गणना करें

  4. findAndModify - MongoError:अपवाद:हटाने या अपडेट को निर्दिष्ट करना होगा

  5. एकाधिक पहलुओं के साथ एकत्रीकरण फ्रेमवर्क सी # में पहलुओं का उपयोग करना, खोलना और क्रमबद्ध करना