Mongoose 从不同的数据库填充架构

Gon*_*nys 6 mongoose mongodb node.js

例如,我有 SchemaA 和 SchemaB,它们都属于不同的数据库。在 SchemaA 里面我有doc.b = {type: mongoose.Schema.Types.ObjectId, ref: 'SchemaB'}。当我做这个填充时,我得到了以下错误。MissingSchemaError: Schema hasn't been registered for model "SchemaB". Use mongoose.model(name, schema)从我的研究中,我读到 mongoose 支持人口跨数据库。
我需要为每个模式多次使用猫鼬,这是问题吗?
基本上我需要的是两种不同的模式,它们连接到不同的数据库以与填充一起工作。如果我在 mongoose 创建的连接上注册架构,它们将不会注册在同一个列表中。如果有成功的方法那?

Gon*_*nys 5

基本上我们需要做的是将模式传递给人口,如下所示:

User.findOne({
    _id: req.user._id
}).populate({
    path: 'roomsContainer',
    model: RoomsContainer,
    populate: [{
        path: 'creator'
    },{
        path: 'users'
    },{
        path: 'rooms',
        model: Room
    }]
}).exec(function(err, user) {
    // do some magic
});
Run Code Online (Sandbox Code Playgroud)

其中User属于数据库一和RoomRoomsContainer属于数据库二。