1
我试图用Mongoose中的对象ID引用填充用户信息的users
数组。由于MissingSchemaError导致Mongoose.populate()未填充
这里是我的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: Schema hasn't been registered for model "User".
任何想法?
伙计,我爱你。我一直在为这件事感触太久。太感谢了! – Farid