Frage

Ich habe ein rekursiv verschachteltes Schema, genau wie Kommentare in einem Blog. Was ist der beste Weg, um ein individuell verschachteltes Dokument herauszuholen, das mehrere Schichten tief sein kann.

Ich verstehe, dass Sie das Root -Dokument herausholen, und dann in das gewünschte Dokument einbleiben, aber in einer rekursiven Situation, in der das gewünschte Dokument möglicherweise eine unbekannte Anzahl von Ebenen sein kann, wie soll ich es zurückziehen. Schleifen Sie durch und tun Sie ein, wenn Sie sehen, ob es das richtige ist ...?

War es hilfreich?

Lösung

Sieht so aus, als ob es keine mongoose Möglichkeit gibt, es zu tun, damit ich eine rekursive Fundfunktion wie diese zum Finden eines Ordners verwende, der verschachtelt ist:

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

PS Dies verwendet die Unterstrichbibliothek

Andere Tipps

Schnelle Antwort lautet: Sie können Sub -Dokument nicht laden, da MongoDB es nicht unterstützt. In MongoDB können Sie nur Root -Dokument laden und dann auf der Clientseite (aus einer beliebigen Ebene von Tiefen) aus dem Subdokument extrahieren.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top