mongoose填充不同的数据库

时间:2015-03-17 16:37:53

标签: mongoose-populate

我的程序中有两个数据库。一个用于保存用户和角色,另一个用于保存。

1)我的模型User引用了Roles。所以我可以通过以下方式填充角色:



User.find({}).populate('local.roles').sort({ email: 1 }).exec(function (err, users) { ...




这很完美,我可以得到一个用户和他的角色。

2)当我尝试使用与其他数据库连接的模型时,我得到了臭名昭着的错误:

" MissingSchemaError:架构尚未注册模型......"

这是我在使用不同连接时对模型进行编码的方式:



var mongoose = require('mongoose');

// to define another mongoose connection 
var configScrwebDB = require('./../../config/scrwebDatabase.js');
var scrwebDBConnection = mongoose.createConnection(configScrwebDB.url);

var aseguradoSchema = mongoose.Schema({
    nombre: { type: String },
    abreviatura: { type: String },
    rif: { type: String },
    direccion: { type: String }
});

module.exports = scrwebDBConnection.model('Asegurado', aseguradoSchema);




3)这就是我所做的“填充”#39;我的查询中的某个字段(以及因上述错误而失败的字段):



    var query = Riesgo.find({ cia: filtroObject.ciaSeleccionada }); 
    query.populate('asegurado');
    query.sort("codigo"); 
    query.select("codigo fechaInicio estado moneda");



    query.exec(function (err, riesgos) { ...




当然这是另一个' js'文件;并且为了导入我的模型,我执行了我的'要求'等;等。

正如我之前所说,当模特使用'默认'猫鼬连接。

任何想法我应该如何纠正这一点将不胜感激......我在这里错过了一些明显的事情吗?

谢谢,再见......

1 个答案:

答案 0 :(得分:0)

我有同样的错误。你可以使用:

var query = Riesgo.find({ cia: filtroObject.ciaSeleccionada }); query.populate('asegurado','fields to retrieve',User);// **User need to be defined in the file as an variable that contents the User model defined.** query.sort("codigo"); query.select("codigo fechaInicio estado moneda");

参考链接:enter link description here