2017-10-05 2 views
3

Mongoose 4.11과 함께 Node.Js 8.6을 사용하고 있으며 여러 데이터베이스 연결이 있습니다. Db 연결은 mongoose.createConnection을 통해 설정됩니다. 나는 mongoose 객체가 connections 속성 (배열)을 가지고 있음을 알았습니다. 여기서 나는 확립 된 연결을 볼 수 있습니다. 내 질문은 별도의 모듈에 db 모델을 만들 때 연결 사이를 전환하는 올바른 방법은 무엇입니까?Mongoose switching multiple connections

하는 index.js

async function db1() { 
    await mongoose.createConnection(
     process.env.MONGODB_URI_1, 
     { useMongoClient: true } 
    ); 
} 

async function db2() { 
    await mongoose.createConnection(
     process.env.MONGODB_URI_2, 
     { useMongoClient: true } 
    ); 
} 

model.js

//connect to db1 

const Test1 = mongoose.model('Test1', new mongoose.Schema({ name: String })); 

//connect to db2 

const Test2 = mongoose.model('Test2', new mongoose.Schema({ name: String })); 

답변

0

당신은 당신의 다중 연결을 처리하기 위해 createConnection에 의해 객체 반환을 사용할 수 있습니다.


Here is what the documentation says about it

const db1Link = await mongoose.createConnection(
    process.env.MONGODB_URI_1, 
    { useMongoClient: true } 
); 

// Connect to db1 
db1Link.model('Test1', new mongoose.Schema({ name: String })); 

const db2Link = await mongoose.createConnection(
    process.env.MONGODB_URI_2, 
    { useMongoClient: true } 
); 

// Connect to db2 
db2Link.model('Test2', new mongoose.Schema({ name: String })); 
다중 접속 지금까지 우리는 몽구스의 기본 연결을 사용하여 MongoDB에 연결하는 방법을 살펴 보았다

. 때때로 우리는 Mongo에 열려있는 다중 연결이 필요할 수도 있습니다. 각각 읽기/쓰기 설정이 다른 이거나, 예를 들어 다른 데이터베이스 일 수도 있습니다. 이 경우 우리는 이미 의 모든 인수를 받아들이고 신선한 연결을 반환하는 mongoose.createConnection()을 활용할 수 있습니다.
var conn = mongoose.createConnection('mongodb://[username:[email protected]]host1[:port1][,host2[:port2],...[,hostN[:portN]]][/[database][?options]]', options); 

이 연결 개체

는 만들고 모델을 검색하는 데 사용됩니다. 모델의 범위는 항상 단일 연결입니다.

+0

사실입니다. 모듈 주변에서 이러한 연결 객체를 공유하는 가장 좋은 방법은 무엇입니까? –