[英]How to populate using mongoose? I have a problem
我正在為一個更大的開源項目制作一個簡單的 CRUD 示例。 現在我想填充用戶數據,我已經查看了文檔和一些論壇,但我無法解決這里造成的問題。
終端中的消息“Populated User undefined”
有人可以幫忙嗎?
用戶模型
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var userSchema = new Schema({
name: {
type: String
},
});
用戶控制器
var mongoose = require('mongoose'),
User = mongoose.model('Users');
exports.create_a_user = function(req, res) {
var new_user = new User(req.body);
new_user.save(function(err, user) {
if (err)
res.send(err);
res.json(user);
});
};
消息模型
module.exports = mongoose.model('Users', userSchema);
var mongoose = require('mongoose');
var Schema = mongoose.Schema;
var msgSchema = new Schema({
title: {
type: String
},
body: {
type: String
},
created_date: {
type: Date,
default: Date.now
},
user : {
type: mongoose.Schema.Types.ObjectId,
ref: 'User'
},
});
module.exports = mongoose.model('Messages', msgSchema);
消息控制器
var mongoose = require('mongoose'),
Message = mongoose.model('Messages');
exports.list_all_messages = function (req, res) {
Message.find({})
.populate('user')
.exec((err, msg) => {
if (err)
res.send(err);
res.json(msg);
});
};
module.exports = mongoose.model('用戶', userSchema);
也許在 msgSchema 中你必須引用 'users' 而不是 'user'
因此,我在代碼中發現了錯誤,在用戶的架構中,缺少對放置在用戶 model 中的名稱的導出的引用。
user : {
type: mongoose.Schema.Types.ObjectId,
ref: 'Users'
},
所以,...
module.exports = mongoose.model('Users', userSchema);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.