Mongooseマルチデータベース接続および実用サンプル
7359 ワード
使用環境:
MongoDB 3.6
プラグインのバージョン:
ダイレクトコード
定義したら次はModelテスト
MongoDB 3.6
プラグインのバージョン:
"mongodb": "^3.1.10",
"mongoose": "^5.4.2",
ダイレクトコード
let mongoose = require('mongoose');
mongoose.Promise = global.Promise;
mongoose.set('debug', true);
let dbname1 = 'datab1';
let dbname2 = 'datab2';
const options = {
useNewUrlParser: true,
useCreateIndex: true,
reconnectTries: Number.MAX_VALUE
};
let uri_1 = 'mongodb://username:[email protected]:27017/'+dbname1;
let uri_2 = 'mongodb://192.168.0.2:27017/'+dbname2;
let db1 = mongoose.createConnection(uri_1, options);
db1.on('error', () => {
console.log(uri_1+"\r
[" + dbname1 + "] !" + error);
}).on('connected', () => {
console.log(uri_1+"\r
[" + dbname1 + "] !");
});
let db2 = mongoose.createConnection(uri_2, options);
db2.on('error', () => {
console.log(uri_2+"\r
[" + dbname2 + "] !" + error);
}).on('connected', () => {
console.log(uri_2+"\r
[" + dbname2 + "] !");
});
定義したら次はModelテスト
let InfoC_Schema = new mongoose.Schema({
status: {type:Number, default: 0},
desc: String,
url: String,
readtime: Date,
createdate: {type:Date, default: Date.now}
}, {
versionKey: false,
collection: "cx_infoc"
});
let InfoC = db1.model("InfoC", InfoC_Schema);
let Logs_Schema = new mongoose.Schema({
objname: String,
objid: String,
desc: String,
level:{type:Number, default: 1},
createdate: {type:Date, default: Date.now}
}, {
versionKey: false,
collection: "cx_logs"
});
let Logs = db2.model("Logs", Logs_Schema);
InfoC.find({}, function(err, list){
console.log("db1.>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
console.log(list);
});
Logs.find({}, function(err, list){
console.log("db2.>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
console.log(list);
});