Rekursive Suche in einer Sammlung in MongoDB

Habe ich eine Liste der Dokumente in MongoDB mit Baumstruktur, wo Modell Baum-Strukturen mit Eltern-Referenzen Muster verwendet. Ich möchte eine einzelne aggregation Abfrage gibt vorfahrenliste(bis root), angesichts der 'name' - Eigenschaft.

Struktur:

{
  '_id': '1',
  'name': 'A',
  'parent': '',
},
{
  '_id': '2',
  'name': 'B',
  'parent': 'A',
},
{
  '_id': '3',
  'name': 'C',
  'parent': 'B',
},
{
  '_id': '4',
  'name': 'D',
  'parent': 'C',
}

Aggregation Ergebnis:(Gegeben, Namen = 'D')

{
  '_id': '4',
  'name': 'D',
  'ancestors': [{name:'C'}, {name:'B'}, {name:'A'}]
}

Note: Ich kann es nicht ändern, die Dokument-Struktur jetzt. Es wird viele Probleme verursachen. Ich sah viele Lösungen, die vorschlagen, die Verwendung Modell Baum-Strukturen mit einer Reihe von Vorfahren. Aber ich kann es jetzt verwenden. Gibt es eine Möglichkeit, es zu erreichen mit der oben genannten Muster mit Hilfe der single-aggregation-Abfrage? Danke

  • Warum ist _id string?
  • Es ist nur ein Beispiel. Aktuelle doc wird mit ObjectId
  • Gibt es etwas über Styvane Antwort, dass doesn ' T Arbeit für Sie, die Eingebung, die bounty?
  • Styvane Antwort von MongoDB v3.4 ich war auf der Suche nach einer Möglichkeit, das arbeiten mit MongoDB v2.6 ab
InformationsquelleAutor RaR | 2016-11-10
Schreibe einen Kommentar