2
我使用示例中的方案描述。查找,修改和刪除遞歸嵌入文檔mongoosejs
Comment.add({
title : { type: String, index: true }
, date : Date
, body : String
, comments : [Comment]
});
var BlogPost = new Schema({
title : { type: String, index: true }
, slug : { type: String, lowercase: true, trim: true }
, date : Date
, buf : Buffer
, comments : [Comment]
, creator : Schema.ObjectId
});
我有幾個級別的嵌套註釋。 如何找到在嵌套任何級別的正確意見,並與它(刪除編輯或添加新的嵌套評論) 任何行動,我試圖讓遞歸搜索,但你不能保存或刪除評論
BlogPost.methods.findComment = function (id, callback) {
var curentComment = this.comments;
var findComment = null;
var recursiveFindComment = function(comment){
for(i=0;i<comment.length;i++){
if(findComment){
break;
}
if(comment[i]._id == id){
findComment = comment[i];
break;
}else if(comment[i].comments.length>0){
findComment = recursiveFindComment(comment[i].comments)
}
}
return findComment;
}
if(curentComment.id(id)){
callback(curentComment);
}else{
callback(recursiveFindComment(curentComment, null))
}
}