评论博客文章评论

时间:2016-02-10 00:15:14

标签: angularjs node.js mongodb mongoose

我使用Mean Stack并尝试在评论功能中发表评论,以便为博客文章工作。

我遇到的问题是试图从angular到mongo来更新给定博客的评论和评论评论。我基本上不知道如何使用angular / express / mongoose来使用子文档id或嵌套的子文档id来更新父博客或评论。

到目前为止我设法做的是:

创建我的架构 -

var mongoose = require('mongoose'), Schema = mongoose.Schema;

var childSchema = new Schema;
childSchema.add({ 
firstName: 'string', 
lastName: 'string', 
comment: 'string', 
children: [childSchema] 
});

var parentSchema = new Schema({
firstName: 'string',
lastName: 'string',
blog: 'string',
children: [childSchema]
});

var Parent = mongoose.model('Parent', parentSchema);

使用一些数据加载Mongo -

{
"firstName": "bobby",
"lastName": "edwards",
"blog": "this is blog 6",
"children": [
                {
            "firstName": "cat",
            "lastName": "edwards",
            "comment": "this is blog 6.1",
            "children": [  
                            {
                        "firstName": "dave",
                        "lastName": "edwards",
                        "comment": "this is blog 6.2",
                        "children": []
                         }]
            }]
}

从mongo获取嵌套评论的所有博客并以角度正确显示 - 每个博客或评论都附有表格

返回单亲博客 -

创建父级博客 -

已更新

我设法降低了一级,但为此我必须将注释ID作为参数发送,修改快速路由并将findbyid的结果传递给results.comment.id({_ id:req.params.comment_id })。

节点应用

  app.get('/parent/:post_id/:comment_id', postsController.single);

节点控制器

  module.exports.single = function (req, res) {
  console.log(req.params.post_id);
  Parent.findById({ _id: req.params.post_id }, function (err, results) {
      if (err) {
         console.log(err);
      }
  var id = results.children.id({ _id: req.params.comment_id }); //function (err, commentresults) {

     console.log('triggered 2');
     console.log(id);
     res.json([id]);
  });
};

据说这是用于学习/测试的,如果我需要创建/返回/更新评论10级,我们无法看到它是如何工作的。

2 个答案:

答案 0 :(得分:1)

从不同的角度来看,我的架构中只有两个可选字段topLevelCommentIdcommentOwnerId

无论何时插入注释,只要您将topLevelCommentId适当地设置为顶级父级,并将commentOwnerId设置为直接父级,您应该可以正确地嵌套注释。

答案 1 :(得分:1)

感谢您的反馈。我想我需要更好地了解MongoDB中的可能性。因此,我决定参加几个MongoDB大学课程。一个在开发方面,一个在操作方面。