node.js - Mongoose 从不同的数据库填充模式

标签 node.js mongodb mongoose

例如,我有 SchemaA 和 SchemaB,它们都属于不同的数据库。在 SchemaA 中,我有 doc.b = {type: mongoose.Schema.Types.ObjectId, ref: 'SchemaB'}。当我填充这个时,我遇到了以下错误。 MissingSchemaError:尚未为模型“SchemaB”注册架构。使用 mongoose.model(name, schema) 从我的研究中,我了解到 mongoose 支持人口跨数据库。
我需要为每个模式多次使用 mongoose,这是问题所在吗?
基本上我需要的是两个不同的模式,它们连接到不同的数据库以与填充一起工作。如果我在 mongoose 创建的连接上注册模式,它们将不会在同一个列表中注册。有没有办法成功呢?

最佳答案

基本上我们需要做的是将模式传递给人口,就像这样:

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

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

关于node.js - Mongoose 从不同的数据库填充模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36962294/

相关文章:

node.js - 如何从 Mongoose 中删除已定义的架构?

eclipse - Nodeclipse 控制台中的奇怪字符

node.js - 无法在 ubuntu 中运行 nw.js 应用程序

mongodb - 在单个 Ubuntu 机器上为 MongoDB 配置主从配置

mongodb - 尝试在 mongodb 4.2 中添加多个绑定(bind) ip 时重新启动 mongo.service 时出错

node.js - socket.io + redis - 幽灵套接字 - 这可能吗?

windows - Windows 上的本地 Mongo - 无法连接到服务器 127.0.0.1 :27017, 连接尝试失败

javascript - 使用 mongoose 的 Mongo 自定义排序策略

MongoDB如何通过搜索混合模式字段来查找文档?

node.js - 包含使用 Mongoose 查询 MongoDB 数组