如果你只有comments
在post
對象,你只能有一個comments
陣列像這樣:
Posts {
_id: String;
comments: [];
}
,並刪除他的ID評論:
Posts.update({_id: postId, "comments.comment_id" : "commentIdToDelete"},
{ $pull:{"comments": {"comment_id": "commentIdToDelete"}}})
要更新評論通過他的ID:
Posts.update({_id: postId, "comments.comment_id" : "commentIdToUpdate"},
{ $set:{"comments.$.comment": "A new comment"}})
UPDATE
爲了將comments
陣列,我們必須initialiaze的post
文件(如果它尚未完成)中添加評論:
Posts.insert({
comments: []
});
現在我們要檢索的的comments
數組大小post
更新:
let lengthComments = Posts.findOne({_id: postIdToUpdate}).comments.length;
最後,我們可以在comments
陣列中添加評論:
Posts.update({_id: postIdToUpdate}, {
$push: {
"comments": {
"comment_id": lengthComments + 1,
"comment": "My comment",
"user_id": Meteor.userId(),
}
}
});
我該如何去選擇特定的發佈對象並修改該特定的評論數組?正如我現在設置的那樣,我已經將comment_id設置爲從1開始並且每個帖子增加1。 – dchen71
在你的設置中有一些我不明白的地方:'comments'是一個數組還是它是數組中的一個對象? – JeanMel
評論是一個數組。我想設置它以便評論是一個包含user_id,comment和comment_id的評論散列數組,它被簡單地定義爲1 +每個帖子數組的長度。 – dchen71