由于MissingSchemaError,Mongoose .populate()不能填充
我正在尝试使用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: Schema hasn't been registered for model "User".
有任何想法吗?
您在user.js中输出的模型名称是Users
,您正试图在conversation.js中将其与User.js一起引用,这就是为什么它会给出错误。 将Users
更改为Users
,它应该工作