来自两个连接的mongoose模型

我有以下设置:

/models/index.js

var glob = require('glob'); var mongoose = require('mongoose'); var Promise = require('bluebird'); mongoose.Promise = Promise; mongoose.connect('mongodb://localhost/firstDB', { useMongoClient: true }); var models = glob.sync(__dirname + '/*.js', {ignore: '**/index.js'}); models.forEach(function (model) { require(model); }); 

/models/movie.js

 var mongoose = require('mongoose'); var movieSchema = new mongoose.Schema({ title: String }, {timestamps: true}); mongoose.model('movie', movieSchema); 

/app.js

 require('./models'); ... var Movie = mongoose.model('movie'); ... 

我想从同一个app.js文件访问secondDB模型,我该怎么做?


更新:最终设置应该是这样的:
(不知道如何将连接传递给模型)

/models/index.js

 var glob = require('glob'); var mongoose = require('mongoose'); var Promise = require('bluebird'); mongoose.Promise = Promise; var firstConnection = mongoose.connect('mongodb://localhost/firstDB', { useMongoClient: true }); var secondConnection = mongoose.connect('mongodb://localhost/secondDB', { useMongoClient: true }); var firstModels = glob.sync(__dirname + '/*.js', {ignore: '**/index.js'}); firstModels.forEach(function (model) { require(model); }); var secondModels = glob.sync(__dirname + '/second/*.js'); secondModels.forEach(function (model) { require(model); }); 

/models/movie.js

 var mongoose = require('mongoose'); var movieSchema = new mongoose.Schema({ title: String }, {timestamps: true}); mongoose.model('movie', movieSchema); 

/models/second/car.js

 var mongoose = require('mongoose'); var carSchema = new mongoose.Schema({ color: String }, {timestamps: true}); mongoose.model('car', carSchema); 

/app.js

 require('./models'); ... var Movie = mongoose.model('movie'); var Car = mongoose.model('car'); ... 

试试这个,谢谢!

 var mongoose = require('mongoose') var connection1 = mongoose.createConnection('connectionstring1'); var connection2 = mongoose.createConnection('connectionstring2'); 

检查这个URL – http://mongoosejs.com/docs/connections.html

并转到多个连接部分。

编辑:

connectionOne.js

 var mongoose = require('mongoose'), mongoURI = 'mongodb://user:password@localhost:27017/dbOne'; module.exports = connectionOne = mongoose.createConnection(mongoURI); connectionOne.on('connected', function() { console.log('Mongoose connected to connectionOne'); }); require('./events') 

connectionTwo.js

 var mongoose = require('mongoose'), mongoURI = 'mongodb://user:password@localhost:27017/dbTwo'; module.exports = connectionTwo = mongoose.createConnection(mongoURI); connectionTwo.on('connected', function() { console.log('Mongoose connected to connectionTwo'); }); require('./events') 

events.js

 var mongoose = require('mongoose'), connectionOne = require('./connectionOne'); var Event = new mongoose.Schema({ name: { type: String, required: true }, date: { type: Date, required: false } }); var connectionTwo = require('./connectionTwo'); var newEvent = new mongoose.Schema({ name: { type: String, required: true }, organizer: { type: String, required: true } }); module.exports = { connectionOne.model('Event1', Event); connectionTwo.model('Event2', newEvent); } 

有关更多解释 – 处理多数据库和连接与mongoose

  • – 我没有testing它。