2011-09-04 88 views
1

我有一個遞歸嵌套模式就像在博客上的評論工作。將單個嵌套的文檔拉出幾層可能是最好的方法。獲取遞歸嵌套的文檔 - Mongoose/Mongodb

我知道你得到了根文檔,然後深入到你想要的文檔,但是在遞歸的情況下,想要的文檔可能是未知數量的深度,我應該如何檢索它。循環,並做一個如果看看它是否是正確的...?

回答

3

貌似沒有貓鼬辦法做到這一點使用這樣的遞歸查找功能查找其嵌套在文件夾,以便即時通訊:

var findFolder = function(searchFolder ,folder_id, cb){ 
    var folder = searchFolder.folders.id(folder_id); 
    if(folder == undefined){ 
    _.each(searchFolder.folders, function(subFolder){ 
     findFolder(subFolder, folder_id, cb); 
    }.bind(this)) 
    }else{ 
    cb(folder);//when found callback passing the doc 
    }; 
}; 

附:這使用下劃線庫

2

快速回答是:無法加載子文檔,因爲mongodb不支持它。在mongodb中,只能加載根文檔,然後從客戶端的子文檔(從任何深度級別)提取它。

+0

謝謝,我已經添加了一點解釋問題多一點。 –