我正在使用MEAN stack
两个相互关联的数据模型:
发布和评论
所以在PostSchema
我有
comments:{
type:mongoose.Schema.Types.ObjectId,
ref:'Comment'
在我的CommentSchema
我有
post:{
type:mongoose.Schema.Types.ObjectId,
ref:'Post'
}
在我的视图中输入注释后,我希望后端将注释保存在Comment集合中,并将注释保存在Post集合中。
在我的服务器app.js文件中:
comment.save(function(err,comment){
if(err){return next(err);}
var post = new Post(req.post)
post.comments.push(comment)
// OR req.post.comments.push(comment);etc
post.save(function(err,post){
if(err){return next(err);}
res.json(comment);
})
})
但是,在我使用post.comments.push
或req.post.comments.push
的地方,我在push is not a function
的命令行上收到错误消息。
以上代码来自在线教程[1]。我在网上搜索但是找不到任何使用push
的类似例子。
如果我被push
误导了,如果还有其他方式我应该这样做,你能告诉我吗?
[1] https://thinkster.io/mean-stack-tutorial#wiring-everything-up
答案 0 :(得分:1)
看起来您没有定义注释的ARRAY,而只是一个(标准)注释,因此它不是数组而且没有“推”方法。定义应如下所示:
comments:[{
type:mongoose.Schema.Types.ObjectId,
ref:'Comment'}]