2017-02-08 5 views
0

Я новичок в mongoDB, и мне было интересно, возможно ли следующее.Объединение двух разных коллекций в форме mongoDB в Node Js

У меня есть два разных коллекции в той же таблице Монго дб - называется jobs и nodes и это то, что они выглядят как:

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 } ] 

Так как вы можно видеть, что две разные коллекции имеют по два документа каждый, и они могут связываться с помощью job_url и node_url, например 222.22.22.22:2222 Можно мне присоединиться документы вместе на этой основе, так что конечный результат будет что-то вроде этого:

[ { _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 } 

Любые помощь/советы будут очень благодарны!

+0

Если вы спрашиваете, можете ли вы сделать это прямо в 'MongoDB', нет. Но вы можете сделать это в «Узде». Проверьте http://stackoverflow.com/questions/35903850/combine-json-arrays-by-key-javascript –

ответ

1

Там будет не вступать в Монго, потому что Монго является NoSQL базы данных, читать об этом здесь https://en.wikipedia.org/wiki/NoSQL

Короче говоря, NoSQL базы данных используются при перемотке поиска и высокой доступности данных необходимо (присоединиться медленно, так что это из игры здесь), вместо этого, когда вы попадаете в такую ​​ситуацию, как ваша, тогда вы должны подумать о том, чтобы перестроить вашу схему, как здесь хорошо объяснено. https://docs.mongodb.com/manual/core/data-modeling-introduction

Из источника вы можете сделать соединение вручную самостоятельно, mongo