2017-02-08 3 views
0

私はmongoDBを使い始めました。次のことが可能かどうか疑問に思っていました。ノードJsのmongoDBから2つの異なるコレクションへの結合

私は同じのmongo dbテーブルに2つの異なるコレクションを持っている - jobsnodesと呼ばれるが、これは彼らがのように見えるということです。

function testing() { 
    nodes.find(function(err, data) { 
     if (err) { 
      console.log(err) 
     } else { 
      console.log('NODES RETURNED: ', data) 

      jobs.find(function(err, post) { 
       if (err) { 
        console.log(err) 
       } else { 
        console.log('JOBS RETURNED: ', post) 
       } 
      }); 
     } 
    }); 
} 

以下を返す:

JOBS RETURNED: [ { _id: '5899999354d59', 
    job_url: 'http://222.22.22.22:2222/jobs', 
    progress: 0, 
    queue: 0 }, 
    { _id: '5899b7d054da96', 
    job_url: 'http://111.11.1.111:1111/jobs', 
    progress: 0, 
    queue: 0 } ] 

CLUSTER NODESS RETURNED: [ { _id: '58a9a4805c1f', 
    node_url: 'http://222.22.22.22:2222/nodes', 
    cpu: 40 }, 
    { _id: '58999a9a4805c23', 
    node_url: 'http://111.11.1.111:1111/nodes', 
    average_cpu: 15 } ] 

だからとして2つの異なるコレクションにはそれぞれ2つのドキュメントがあり、job_urlとnode_urlに関連付けることができます。

[ { _id: '58a9a4805c1f', 
    node_url: 'http://222.22.22.22:2222/nodes', 
    job_url: 'http://222.22.22.22:2222/jobs', 
    progress: 0, 
    queue: 0 }, 
    cpu: 40 }, 
    { _id: '58999a9a4805c23', 
    node_url: 'http://111.11.1.111:1111/nodes', 
    job_url: 'http://111.11.1.111:1111/jobs', 
    progress: 0, 
    queue: 0, 
    average_cpu: 15 } 

すべてのヘルプ/ヒントは本当にいただければ幸い:222.22.22.22:2222は、最終的な結果は、このようなものであるように、それは可能私は一緒にこれに基づいて文書を参加するためです!それはアウトですので、高速検索とデータの高可用性が必要な場合はMongoがNoSQLのデータベースであるため、何のmongoに

+0

あなたが 'MongoDB'でこれを直接行うことができるかどうかを尋ねるなら、いいえ。しかし、あなたは 'Node'でそれを行うことができます。 http://stackoverflow.com/questions/35903850/combine-json-arrays-by-key-javascriptをご覧ください。 –

答えて

1

そこに参加され、ここではそれについて簡単に説明するとhttps://en.wikipedia.org/wiki/NoSQL

を読まない、NoSQLのデータベースが使用されている(遅い参加あなたのような状況に陥ったときは、ここでよく説明されているようにあなたのスキーマを改造することを考えなければなりません。あなたはあなた自身で手動で参加できますが、 mongo

関連する問題