MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как да сравним 2 колекции mongodb?

Можете да опитате да използвате mongodb eval, комбиниран с вашата персонализирана функция за равенство, нещо подобно.

Вашите методи не работят, защото в първия случай сравнявате препратки към обекти, които не са еднакви. Във втория случай няма гаранция, че to_json ще генерира същия низ дори за обектите, които са еднакви.

Вместо това опитайте нещо подобно:

var compareCollections = function(){
    db.test1.find().forEach(function(obj1){
        db.test2.find({/*if you know some properties, you can put them here...if don't, leave this empty*/}).forEach(function(obj2){
            var equals = function(o1, o2){
                // here goes some compare code...modified from the SO link you have in the answer.
            };

            if(equals(ob1, obj2)){
                // Do what you want to do
            }
        });
    });
};

db.eval(compareCollections);

С db.eval гарантирате, че кодът ще се изпълнява от страната на сървъра на базата данни, без да се извличат колекции на клиента.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Изтрийте всичко в база данни на MongoDB

  2. Инсталиране на MongoDB с Homebrew

  3. Изброяване на всички колекции в база данни mongo в рамките на скрипт на nodejs

  4. Намерете стойности, които не съдържат числа в SQL

  5. MongoDB:ГРЕШКА:дъщерният процес е неуспешен, излезе с грешка номер 14