Pregunta

Tengo un esquema recursivamente anidado como los comentarios funcionan en un blog. ¿Cuál es la mejor manera de sacar un documento anidado individualmente que puede tener varias capas de profundidad?

Entiendo que obtienes el documento raíz, luego profundiza en el documento que deseas, pero en una situación recursiva en la que el documento buscado puede ser un número desconocido de niveles de profundidad, ¿cómo debo recuperarlo? Haga vueltas y haga un si es para ver si es el correcto ...?

¿Fue útil?

Solución

Parece que no hay una forma de mangosta de hacerlo, así que estoy usando una función de búsqueda recursiva como esta para encontrar una carpeta que esté anidada:

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
  };
};

PD esto usa la biblioteca de subrayamiento

Otros consejos

La respuesta rápida es: no puede cargar un subgrupo, porque MongoDB no lo admite. En MongoDB puede cargar solo el documento raíz y luego extraer del sub documento en el lado del cliente (desde cualquier nivel de profundidad).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top