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

जब पैरेंट फ़ील्ड ज्ञात न हों तो नेस्टेड दस्तावेज़ में फ़ील्ड के साथ रिकॉर्ड खोजें

नेस्टेड दस्तावेज़ में एक कुंजी खोजने के लिए आपको दस्तावेज़ फ़ील्ड को पुनरावर्ती रूप से पुनरावृत्त करने की आवश्यकता है, आप इसे जावास्क्रिप्ट में $where की सहायता से कर सकते हैं MongoDB में विधि नीचे दी गई क्वेरी खोजेगी कि दस्तावेज़ और उसके उप-दस्तावेज़ों में कोई कुंजी नाम मौजूद है या नहीं।

मैंने आपके द्वारा दिए गए उदाहरण से इसकी जाँच की है, और यह पूरी तरह से ठीक काम कर रहा है।

db.getCollection('test').find({ $where: function () {
    var search_key = "lev3_field2";

    function check_key(document) {
      return Object.keys(document).some(function(key) {
        if ( typeof(document[key]) == "object" ) {
            if ( key == search_key ) {
                return true;
            } else {
                return check_key(document[key]);
            }
        } else {
          return ( key == search_key );
        }
      });
    }
    return check_key(this);
  }}

);


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. जब मैं दस्तावेज़ जोड़ता हूं तो क्या मोंगोडीबी कर्सर स्वतः बढ़ता है?

  2. MongoDB एकत्रीकरण - $ समूह तिथि के अनुसार भले ही मौजूद न हो

  3. नेवला खोजएक छँटाई के साथ

  4. Mongodb में, मैं कैसे जांच सकता हूं कि सभी दस्तावेज़ एक मूल्य के लिए अद्वितीय हैं या नहीं?

  5. MongoDB और PostgreSQL विचार