Je kunt proberen mongodb eval te gebruiken in combinatie met je aangepaste isgelijk-functie, zoiets als dit.
Uw methoden werken niet omdat u in het eerste geval objectreferenties vergelijkt, die niet hetzelfde zijn. In het tweede geval is er geen garantie dat to_json dezelfde string zal genereren, zelfs niet voor dezelfde objecten.
Probeer in plaats daarvan iets als dit:
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);
Met db.eval zorgt u ervoor dat code wordt uitgevoerd aan de kant van de databaseserver, zonder collecties op te halen bij de client.