将值推入Nodejs中的Mongodb模型

时间:2016-06-27 06:52:48

标签: node.js mongodb mongodb-query mean

我正在使用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.pushreq.post.comments.push的地方,我在push is not a function的命令行上收到错误消息。

以上代码来自在线教程[1]。我在网上搜索但是找不到任何使用push的类似例子。

如果我被push误导了,如果还有其他方式我应该这样做,你能告诉我吗?

[1] https://thinkster.io/mean-stack-tutorial#wiring-everything-up

1 个答案:

答案 0 :(得分:1)

看起来您没有定义注释的ARRAY,而只是一个(标准)注释,因此它不是数组而且没有“推”方法。定义应如下所示:

comments:[{
        type:mongoose.Schema.Types.ObjectId,
        ref:'Comment'}]