Mongoose在数组上填充函数



我在mongoose函数中填充时遇到问题,这是我的模式:

event.js文件:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
const Event = new Schema({
name:  String, 
posts: [{
type: Schema.Types.ObjectId,
ref: "Post",
}]

});
module.exports =  mongoose.model('Events',Event);

post.js文件:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;
const Post = new Schema({
name: String,
content: String,
picture: String
})
module.exports = mongoose.model('Posts',Post)

当向事件添加新帖子时,我使用此路线并执行以下操作:

router.post("/:id",async (req,res)=>{
let id = req.params.id;
const postToAdd = new Post({
name : req.body.name ,
content: req.body.content,
picture: req.body.picture,
});
postToAdd.save().then((err,res)=>{
if(err) console.log(err)
else console.log(err)
})
const evetToUpdate = await event.findById(id)
evetToUpdate.posts.push(postToAdd)
const newEvent = await evetToUpdate.save()

event.findById(id).
populate('posts').
exec(function(err,res){
if(err) console.log(err)
else console.log(res.Post)
})

})

这个过程的结果是,我有一个新的帖子链接到没有填充数据的事件。

好的,愚蠢的错误,在参考资料中,我需要提到收藏的确切名称Post。

最新更新