猫鼬在数组上填充函数

问题描述

在猫鼬函数中存在填充问题, 这是我的模式:

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。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...