Domanda

Ho uno schema ricorsivo nidificato proprio come commenti lavorare su un blog. Qual è il modo migliore per tirare fuori un documento nidificato che possono essere diversi strati profondi.

Capisco che si ottiene il documento radice, poi drill-down per il documento che si desidera, ma in una situazione in cui ricorsivo il documento desiderato può essere un numero imprecisato di livelli di profondità come dovrei retrive esso. Loop attraverso e fare un caso per vedere se quella giusta ...?

È stato utile?

Soluzione

Sembra che ci sia alcun modo mangusta per farlo in modo im utilizzando una funzione di ricerca ricorsiva come questo per la ricerca di una cartella che è annidato:

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. questo utilizza la libreria di sottolineatura

Altri suggerimenti

risposta rapida è: non è possibile caricare documenti sub, perché MongoDB non lo supporta. In MongoDB è possibile caricare solo documento radice e quindi estrarre da esso sub documento al lato client (da qualsiasi livello di profondità).

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top