Anda dapat mencoba menggunakan mongodb eval yang dikombinasikan dengan fungsi equals khusus Anda, kira-kira seperti ini.
Metode Anda tidak berfungsi karena dalam kasus pertama Anda membandingkan referensi objek, yang tidak sama. Dalam kasus kedua, tidak ada jaminan bahwa to_json akan menghasilkan string yang sama bahkan untuk objek yang sama.
Sebagai gantinya, coba sesuatu seperti ini:
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);
Dengan db.eval Anda memastikan bahwa kode akan dieksekusi di sisi server database, tanpa mengambil koleksi ke klien.