【问题标题】:mongoose populate different database猫鼬填充不同的数据库
【发布时间】:2015-05-20 05:10:02
【问题描述】:

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

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

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

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

2) 当我尝试做同样的事情时,但是与连接到另一个数据库的模型,我得到了臭名昭著的错误:

“MissingSchemaError: schema 没有为模型注册...”

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

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

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

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

谢谢,再见...

【问题讨论】:

    标签: mongoose-populate


    【解决方案1】:

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

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

    Refer link

    【讨论】:

      猜你喜欢
      • 2015-07-13
      • 2015-07-13
      • 2016-10-10
      • 2018-08-29
      • 2013-10-05
      • 2020-01-17
      • 2014-04-19
      • 1970-01-01
      相关资源
      最近更新 更多