2015-03-11 5 views
1

Используя mongojs или любую другую библиотеку nodejs, можно ли создавать соединения с несколькими удаленными базами данных MongoDB (не реплицированными dbs)?Можно ли создавать соединения с несколькими удаленными базами данных MongoDB?

Что мне нужно сделать, это загрузить некоторые данные в коллекции в удаленной базе данных А, процесс это затем обновить некоторые другие документы в коллекции в удаленной базе данных B.

+0

Возможный дубликат [Использование нескольких баз данных Mongodb с Meteor.js] (http://stackoverflow.com/questions/20535755/using-multiple-mongodb-databases-with-meteor-js) – chridam

ответ

2

Sure. Например, с помощью nodejs mongodb driver:

var MongoClient = require('mongodb').MongoClient 
MongoClient.connect('<connectionstring1>', function (err, db1) { 
    MongoClient.connect('<connectionstring2>', function (err, db2) { 
     //Do something with db1 and db2 here. 
    }); 
}); 

Как вы можете видеть, вы можете подключиться к так много баз данных, как вам нравится в этой моде.

Если вы не любите вложенные обратные вызовы, рассмотрите возможность взглянуть на библиотеку async, чтобы немного почистить ее.

Дайте мне знать, если это сработает!

Благодаря Нейлу Лунну за его отзывы о предыдущих версиях этого ответа.

+0

Ну да, но это не так, действительно демонстрируют то, что задает ОП. Было бы лучше показать, как подключиться, чтобы информация могла быть передана от db1 до db2. –

+0

Вопрос об открытии нескольких подключений. Передача данных из базы данных в другую базу данных является иллюстрацией того, почему OP хочет это сделать. Сосредоточение на том, чтобы сделать полный пример последнего, утопило бы сравнительно простой ответ первому, поэтому я предполагаю, что OP имеет некоторые знания асинхронного программирования в javascript. Если фактическая связь между частью dbs все еще создает проблемы, я буду рад ее проработать. Сказанное, я чувствую, что у вас есть точка, которую мой пример фактически расходится с конечной целью, которую имеет в виду ОП, поэтому я изменил ее, чтобы улучшить эту цель. –

+0

Итак, почему вам так трудно понять, что вы открываете одно соединение внутри обратного вызова другому? –