簡體   English   中英

如何使用 mongoose 進行填充? 我有個問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM