我的程序中有两个数据库。一个用于保存用户和角色,另一个用于保存。
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'文件;并且为了导入我的模型,我执行了我的'要求'等;等。
正如我之前所说,当模特使用'默认'猫鼬连接。
任何想法我应该如何纠正这一点将不胜感激......我在这里错过了一些明显的事情吗?
谢谢,再见......
答案 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");