node.js - 由于 MissingSchemaError,Mongoose .populate() 未填充

标签 node.js express mongoose

我正在尝试使用 Mongoose 中使用对象 ID 引用的用户信息填充 users 数组。

这是我的 user.js 模型:

var mongoose = require('mongoose');

var User = mongoose.Schema({
    conversations: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'Conversations'
        }
    ],
    messages: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'Messages'
        }
    ]
});

var User = module.exports = mongoose.model('Users', User);

module.exports.getUserByUsername = function(username, callback) {
    var query = {username: username};
    User.findOne(query, callback);
}

module.exports.getUserById = function(id, callback) {
    User.findById(id, callback);
}

还有我的 conversation.js 模型:

var mongoose = require('mongoose');

var Conversation = mongoose.Schema({
    created_at: Date,
    created_by_user_id: String,
    sent_to_user_id: String,
    messages: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'Messages'
        }
    ],
    users: [
        {
            type: mongoose.Schema.Types.ObjectId,
            ref: 'User'
        }
    ]

});

var Conversation = module.exports = mongoose.model('Conversations', Conversation);

我在我的 users.js 路由中使用它们,如下所示:

var User = require('../models/user')
var Conversation = require('../models/conversation')

router.get('/member', ensureAuthenticated, function(req, res, next) {
  Conversation.find({ users: req.user._id }).populate('users').exec((err, conversations) => {
    // Code
  })
})

.populate('users') 未执行。我收到此错误:MissingSchemaError:尚未为模型“User”注册架构。有什么想法吗?

最佳答案

您在 user.js 中导出的模型名称是 Users ,并且您尝试在conversation.js 中使用 User 引用它,这就是它给您错误的原因。将 User 更改为 Users 它应该可以工作

关于node.js - 由于 MissingSchemaError,Mongoose .populate() 未填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44709528/

相关文章:

node.js - Visual Studio 调试器未运行现有 Node 项目

node.js - 错误 : Cannot find module '@babel/core' at Function. Module._resolveFilename(内部/modules/cjs/loader.js:582:15)

css - ExpressJS morgan 只记录路由请求

javascript - 查询指针数组 Mongoose Node.js

javascript - 如何避免在 postgres 数据库中插入空值

node.js - pm2中的方形符号是什么意思?

javascript - Node.js UnhandledPromiseRejectionWarning 即使在捕获它之后

node.js - 测试 jsonwebtoken 身份验证 express 中间件

node.js - 查询数组时 MongoDB 数据匹配和获取问题

node.js - 我可以为 mongo 中的查询创建可尾游标吗?