1

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

1)我的模型用户有对角色的引用。所以我可以通过执行以下操作来填充角色:

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)这是我在查询中“填充”某些字段(以及因上述错误而失败的字段)的操作:

    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”文件中;为了导入我的模型,我做了我的“要求”等;等等

正如我之前所说,我可以在模型使用“默认”猫鼬连接时进行填充。

我应该如何纠正这个问题的任何想法将不胜感激......我在这里遗漏了一些明显的东西吗?

谢谢和再见...

4

1 回答 1

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");

参考链接

于 2015-08-27T23:51:27.460 回答