2016-09-05 10 views
0

私はmongodbデータベースに取り組んでいますが、1つのロジックに詰まっていません。mongodbの2つのコレクションの間にどのように一致要素があるのでしょうか。mongodbの2つのコレクションの間に一致要素を見つける方法は?

ユーザーコレクション

[{ 
    "_id": "57cd539d168df87ae2695543", 
    "userid": "3658975589", 
    "name": "Anshuman Pattnaik", 
    "email": "[email protected]", 
    "number": "7022650603" 
}, { 
    "_id": "57cd53e6168df87ae2695544", 
    "userid": "789456123", 
    "name": "Deeptiman Pattnaik", 
    "email": "[email protected]", 
    "number": "7760941502" 
}] 

コンタクトコレクション

[{ 
    "_id": "57cd2f6c3966037787ce9550", 
    "contact": [{ 
     "id": "457899979", 
     "fullname": "Abcd Hello", 
     "phonenumber": "123575784565", 
     "currentUserid": "123456789" 
}, { 
     "id": "7994949849", 
     "fullname": "Keyboard Mouse", 
     "phonenumber": "23658974262", 
     "currentUserid": "123456789" 
}, { 
     "id": "7848848885", 
     "fullname": "Anshuman Pattnaik", 
     "phonenumber": "7022650603", 
     "currentUserid": "123456789" 
    }] 
}] 

だから私は、これらの2つのコレクションから(電話番号)が一致要素を見つけたいです。それらの要素はその名前に一致し、私は表示したい電子メールです。

私の投稿に行って、解決策を提案してください。

答えて

1

完全な回答ではありませんが、問題の解決に役立つ場合があります。

以下の機能を使用して2つのドキュメントを比較することができます。詳細はthis answer

var compareCollections = function(){ 
     db.users collection.find().forEach(function(obj1){ 
      db.contacts collection.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){ 
        // some code. 
       }; 

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

    db.eval(compareCollections); 
関連する問題