我有一个递归嵌套模式,就像评论在博客上工作一样。拉出单个嵌套文档的最佳方法是什么,这可能是几层深。
我知道你得到了根文档,然后向下钻取到你想要的文档,但是在递归的情况下,想要的文档可能是未知数量的级别,我应该如何检索它。循环并执行if以查看它是否正确...?
答案 0 :(得分:3)
看起来没有mongoose的方法来做到这一点所以我使用这样的递归查找函数来查找嵌套的文件夹:
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
};
};
P.S。这使用下划线库
答案 1 :(得分:2)
快速回答是:你无法加载子文档,因为mongodb不支持它。在mongodb中,您只能加载根文档,然后从客户端(从任何深层)提取子文档。