sql >> データベース >  >> NoSQL >> MongoDB

2つのmongodbコレクションを比較する方法は?

    このようなカスタムequals関数と組み合わせてmongodbevalを使用してみることができます。

    最初のケースでは、同じではないオブジェクト参照を比較しているため、メソッドは機能しません。 2番目のケースでは、同じオブジェクトに対しても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. MongoDB $ mod

    2. JSON形式の「説明」からオンザフライでMongooseスキーマを定義する

    3. JedisPoolConfigをGenericObjectPoolConfigに割り当てることはできません

    4. Redistcp-バックログ