Можете да опитате да използвате 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 гарантирате, че кодът ще се изпълнява от страната на сървъра на базата данни, без да се извличат колекции на клиента.