【问题标题】:Mongoose populate funciton on arrayMongoose 在数组上填充函数
【发布时间】:2021-02-23 18:56:42
【问题描述】:

我在猫鼬函数中填充时遇到问题, 这是我的架构:

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)
    })
   
})

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

【问题讨论】:

  • 尝试填充('posts')
  • 收到错误:尚未为模型“Post”注册架构
  • 尝试查看架构的创建,可能是您的架构创建为帖子而不是帖子

标签: node.js express mongoose mongoose-populate


【解决方案1】:

好的, 愚蠢的错误, 在参考文献中,我需要提及集合的确切名称 Post。

【讨论】:

    猜你喜欢
    • 2019-07-28
    • 2019-01-31
    • 2014-12-05
    • 2019-03-28
    • 1970-01-01
    • 1970-01-01
    • 2019-03-28
    • 2020-06-07
    相关资源
    最近更新 更多