不确定如何在MongoDB中保存

时间:2017-02-14 15:10:45

标签: mongodb mongoose

我正在尝试sub-collection推送MongoDB,我不知道该怎么做。

所以,我的帖子集合结构:

{
    "_id": "58a3189b67476b420e465f8b",
    "postID": "123456",
    "comments": [
        {
            "subComments": [],
            "comment": "This is a test",
            "commentID": 1
        }
    ]
}

所以,我想要做的是使用findOneAndUpdate查找上述文档,然后选择此特定comment commentID == 1 ),然后进入subComments它。

我可以通过推送findOneAndUpdate了解postID comments如何Mongoose,然后通过推送post添加comment,但如何找到commentID,然后subComment由它 <div id="bootstrapModal" class="modal fade" tabindex="-1" role="dialog"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <button type="button" class="close" data-dismiss="modal" aria-label="Close"> <span aria-hidden="true">&times;</span> </button> </div> <div class="modal-body"> </div> <div class="modal-footer"> <button type="button" class="btn btn-success " id="submitButton">Submit</button> <button type="button" class="btn btn-danger" data-dismiss="modal" >Cancel</button> </div> </div> </div> </div> 然后推入var modal = $('#bootstrapModal'); $('.modal-backdrop', modal).css('display', 'none'); $('.modal-dialog',modal).css('pointer-events', 'none'); $('.modal-content',modal).css('pointer-events', 'all',); $(modal).modal('show');

先谢谢你们!非常坚持这最后一块拼图。

1 个答案:

答案 0 :(得分:1)

它类似于其他find个查询。

你可以试试这个:

Post.findOneAndUpdate({
    "postID" : givenPostID,
    "comments.commentID" : givenCommentID
},{ 
    $push : {
        "comment.$.subComments" : givenSubComment
    }
},function(err,result){...});

comments.commentID: givenCommentID会找到comment的{​​{1}}元素。

commentID == givenCommentID comment.$.subComments pushgivenSubComment数组的subComments元素的matched数组(基于commentID匹配)。

更多信息请阅读MongoDB $(update) operator documentation