在mongoose中推入嵌套的子文档数组

时间:2016-08-20 06:52:24

标签: mongodb mongoose

我有一个相当复杂的数据库:

var bookSchema = mongoose.Schema({
    content: {
        page: [pageSchema]
    },
    //otherThings
});

//my book has pages
var pageSchema = mongoose.Schema(
    {
        comments: [commentSchema]
    },
    {_id: false}
);

//comments have replies.
var commentSchema = mongoose.Schema({
    comment: String,
    replies: [this]
});

我正在尝试添加对评论的回复。

我有要添加回复的评论的ID。

但是怎么样?

我试过了:

Book.findOneAndUpdate(
            {
             'content.page.comments._id': ID    
            },
            {
            $push: {'content.page.$.comments.$.replies': myReply}    
            },
            function (err) {
                //...
            }
        )

但这是不可能的,因为我不能多次使用位置($)。

我正试图将这个问题弄清楚几个小时。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

使用简单方法 - commentsSchema

Comment.update({_id: ID}, {$push: {replies: myReply}}, function (err) {});

这将更新评论模型,图书模型也将更新