我正在尝试使用 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/