node.js mongoose несколько баз данных по проекту, используя одну и ту же схему - PullRequest
0 голосов
/ 08 октября 2019

Я хочу использовать несколько баз данных в проекте, но у меня возникают трудности при вызове вторичных баз данных для многих контроллеров маршрутов. Я не хочу закрывать соединение с основными базами данных

текущий метод, который я использовал для вставки данных в несколько контроллеров. Я считаю, что он недостаточно эффективен, т.е.

------>>        all these are called every time a file needs to connect to the secondary database
----------------------------------------------------------------------------------------|
var mongoose = require('mongoose');                                                     |
var mongooseConnect = mongoose.createConnection('mongodb://localhost/27017/'+dbName);   |
                                                                                        |
require('./models');                                                                    |
var modelData = mongooseConnect.model('models');                                        |
----------------------------------------------------------------------------------------|
modelData.save()

Я ищуметод, который позволил бы мне

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

  2. объединить вышеперечисленноекод в одну строку код

Я вызвал основную базу данных обычным способом, который

route.js

var mongoose = require('mongoose'); 
mongoose.connect(mongodbhost/maindb)

, затем всхема, которую я просто требую, чтобы мангуста использовалась в схеме. и только схема вызывается в контроллерах маршрута. Любая помощь будет оценена

1 Ответ

0 голосов
/ 08 октября 2019

Вы можете использовать одну и ту же схему в нескольких базах данных, но вам потребуется создать соединения с обеими базами данных. Вот как вы можете это сделать:

const conn1 = mongoose.createConnection('mongodb://localhost:27017/test1');
const conn2 = mongoose.createConnection('mongodb://localhost:27017/test2');

const TestSchema = require('./TestSchema');
var TestModelDb1 = conn1.model('Model', TestSchema);
var TestModelDb2 = conn2.model('Model', TestSchema);
...