[MONGODB] 다중 연결을 몽구스
MONGODB다중 연결을 몽구스
현재 내 연결 mongoose.js이 코드가 있습니다 :
var mongoose = require('mongoose');
var uriUtil = require('mongodb-uri');
var mongodbUri = 'mongodb://localhost/db_name';
var mongooseUri = uriUtil.formatMongoose(mongodbUri);
mongoose.connect(mongooseUri);
module.exports = mongoose;
연결을 필요로 파일 test.js입니다 :
var mongoose = require('../model/mongoose');
var schema = mongoose.Schema({...});
어떻게 mongoose.createConnection (...) 함수를 사용하여 여러 개의 연결을 사용하는 mongoose.js를 업데이트 할 수 있습니다?
난 단지 내가 그런 변화를 할 하나의 연결을위한 변화를 시작합니다
var mongoose = require('mongoose');
mongoose.createConnection('mongodb://localhost/db_name');
mongoose.open('localhost');
module.exports = mongoose;
받을 I "정의되지 않은 함수 아니다". 이 코드를 사용하는 경우 :
var mongoose = require('mongoose');
db = mongoose.createConnection('mongodb://localhost/db_name');
db.open('localhost');
module.exports = mongoose;
나는 "오류 : 열려 닫히지 않은 연결을 시도"GET
어떤 충고?
해결법
-
==============================
1.연결 풀을 통해 연결을 처리 몽구스 http://mongoosejs.com/docs/connections.html
연결 풀을 통해 연결을 처리 몽구스 http://mongoosejs.com/docs/connections.html
{poolSize : 5} 당신은 서버에서 사용할 수 증가 / 감소 풀 옵션 (병렬 연결의 수)
서로 다른 데이터베이스에 연결을해야하는 경우 이쪽을 봐주세요 몽구스 단일 Node.js를 프로젝트에서 여러 데이터베이스
다중 연결의 예 :
var mongoose = require('mongoose') var conn = mongoose.createConnection('mongodb://localhost/db1'); var conn2 = mongoose.createConnection('mongodb://localhost/db2'); var Schema = new mongoose.Schema({}) var model1 = conn.model('User', Schema); var model2 = conn2.model('Item', Schema); model1.find({}, function() { console.log("this will print out last"); }); model2.find({}, function() { console.log("this will print out first"); });
-
==============================
2.확인. 귀하의 예제와 함께 내 요구에 맞는 솔루션을 발견했다.
확인. 귀하의 예제와 함께 내 요구에 맞는 솔루션을 발견했다.
mongoose.js
var mongoose = require('mongoose'); mongoose.main_conn = mongoose.createConnection('mongodb://localhost/main'); mongoose.admin_conn = mongoose.createConnection('mongodb://localhost/admin'); module.exports = mongoose;
content.js
var mongoose = require('../model/mongoose'); var schema = mongoose.Schema({...}); /// functions here schema.statics.func_a(){...}; schema.statics.func_b(){...}; // And finaly updated only one line //exports.Content = mongoose.model('Content', schema); exports.Content = mongoose.main_conn.model('Content', schema);
유일한 것은, 그것은 OK 객체를 몽구스에 연결 개체를 추가하거나 더 우아한 해결책이 될 수있다.
-
==============================
3.config.js
config.js
module.exports = { default: 'main', main: 'mongodb://localhost/main', admin: 'mongodb://localhost/admin', };
connection.js
const mongoose = require('mongoose'); const config = require('./config'); mongoose.Promise = global.Promise; function createConnection(name) { return mongoose.createConnection(config[name]); } module.exports = createConnection(config[config.default]); module.exports.on = createConnection;
model.js (사용자 정의 클래스)
const connection = require('./connection'); class Model { constructor(name, data) { this.data = data; return this.connection().model(name, data.schema); } connection() { if (this.data.connection) { return connection.on(this.data.connection); } return connection; } } module.exports = Model;
의 user.js
const Schema = require('mongoose').Schema; const conn = require('./connection'); const Model = require('./model'); const userSchema = new Schema({ name: String, email: String, password: String }); // USING MONGOOSE MODEL // default connection const UserM1 = conn.model('User', userSchema); // admin connection const UserM2 = conn.on('admin').model('User', userSchema); // USING CUSTOM MODEL // default connection const UserC1 = new Model('User', { schema: userSchema }); // admin connection const UserC2 = new Model('User', { schema: userSchema, connection: 'admin' });
from https://stackoverflow.com/questions/32906467/mongoose-multiple-connections by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] MongoDB를 데이터베이스 연결을 개방 유지 (0) | 2019.12.29 |
---|---|
[MONGODB] MongoDB를 문자열로 열거 형을 저장 (0) | 2019.12.29 |
[MONGODB] dockerized 몽고에 초기화 데이터 (0) | 2019.12.29 |
[MONGODB] 어떻게 / 덤프 MongoDB의 데이터베이스를 내보낼 수 있나요? (0) | 2019.12.29 |
[MONGODB] 중첩 된 배열을 채울 몽구스 (0) | 2019.12.29 |