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

दो संग्रहों पर एक मोंगो अंतर की तुलना करें

शेल में निम्नलिखित का प्रयास करें, यह प्रत्येक आइटम को एक संग्रह के भीतर पुनरावृत्त करेगा और आईडी के आधार पर प्रत्येक दस्तावेज़ से मिलान करने का प्रयास करेगा।

मान लें कि हमारे पास 2 संग्रह हैं db.col1 और db.col2 :

> db.col1.find()
{ "_id" : 1, "item" : 1 }
{ "_id" : 2, "item" : 2 }
{ "_id" : 3, "item" : 3 }
{ "_id" : 4, "item" : 4 }

> db.col2.find()
{ "_id" : 1, "item" : 1 }
{ "_id" : 2, "item" : 2 }
{ "_id" : 3, "item" : 3 }
{ "_id" : 4, "item" : 4 }

फिर हम 2 संग्रहों की तुलना करने के लिए एक जावास्क्रिप्ट फ़ंक्शन बना सकते हैं

function compareCollection(col1, col2){
    if(col1.count() !== col2.count()){
        return false;
    }

    var same = true;

    var compared = col1.find().forEach(function(doc1){
        var doc2 = col2.findOne({_id: doc1._id});

        same = same && JSON.stringify(doc1)==JSON.stringify(doc2);
    });

    return same;
}

फिर कॉल निम्न की तरह है:

> compareCollection(db.col1, db.col2)
true

अगर हमारे पास तीसरा संग्रह है db.col3

> db.col3.find()
{ "_id" : 1, "item" : 1 }

और इसकी तुलना करें

> compareCollection(db.col1, db.col3)
false

हमें अपेक्षित परिणाम मिलेगा।

अगर हमारे पास चौथा संग्रह भी है जिसमें मेल खाने वाले दस्तावेज़ हैं लेकिन अलग-अलग डेटा db.col4

> db.col4.find()
{ "_id" : 1, "item" : 10 }
{ "_id" : 2, "item" : 2 }
{ "_id" : 3, "item" : 3 }
{ "_id" : 4, "item" : 4 }

यह false भी लौटाएगा

> compareCollection(db.col1, db.col4)
false


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मोंगो जटिल छँटाई?

  2. नेवला जे एस क्वेरी सभी वापस आ रहे हैं शून्य या खाली

  3. नेवला तिथि योजना

  4. mongodb प्रमाणीकरण सक्षम होने पर भी अतिथि कनेक्शन की अनुमति देता है

  5. MongoDb उल्का द्वारा कैसे स्थापित किया जाता है?