Json 获取递归嵌套文档-Mongoose/Mongodb

Json 获取递归嵌套文档-Mongoose/Mongodb,json,mongodb,node.js,mongoose,Json,Mongodb,Node.js,Mongoose,我有一个递归嵌套的模式,就像博客上的注释一样。将可能有好几层的单独嵌套文档拉出的最佳方法是什么 我知道您先取出根文档,然后再深入到所需的文档,但在递归情况下,所需文档的深度可能未知,我应该如何检索它。循环并执行if,看看它是否正确…?快速回答是:您不能加载子文档,因为mongodb不支持它。在mongodb中,您只能加载根文档,然后在客户端(从任何深度级别)从中提取子文档 快速回答是:您不能加载子文档,因为mongodb不支持它。在mongodb中,您只能加载根文档,然后在客户端(从任何深度级别

我有一个递归嵌套的模式,就像博客上的注释一样。将可能有好几层的单独嵌套文档拉出的最佳方法是什么


我知道您先取出根文档,然后再深入到所需的文档,但在递归情况下,所需文档的深度可能未知,我应该如何检索它。循环并执行if,看看它是否正确…?

快速回答是:您不能加载子文档,因为mongodb不支持它。在mongodb中,您只能加载根文档,然后在客户端(从任何深度级别)从中提取子文档

快速回答是:您不能加载子文档,因为mongodb不支持它。在mongodb中,您只能加载根文档,然后在客户端(从任何深度级别)从中提取子文档

看起来没有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、 这使用了下划线库

看起来没有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、 这使用了下划线库

谢谢,我又添加了一点解释问题的内容。谢谢,我又添加了一点解释问题的内容。