mongodb aggregiert eingebettete Dokumentwerte

8

Im Strugling mit einigen Aggregationsfunktionen in mongodb.

Sagen Sie, ich habe ein paar Dokumente wie dieses

%Vor%

Nun möchte ich eine mongodb-Abfrage verwenden, um alle eindeutigen Texte für ein bestimmtes Element der obersten Ebene abzurufen.

zB aggregiere alle Texte für die oberste _id 1. Das würde bedeuten, dass ich alle Texte in beiden Perioden-Teilbäumen bekommen möchte.

erwartete Ausgabe wäre wie folgt:

aggregierte Texte filtern nach _id: 1

%Vor%

aggregierte Texte filtern nach _id: 2

%Vor%

Bisher habe ich es geschafft, alle Texte zu aggregieren, aber das Ende in mehreren Arrays und ich habe es nicht geschafft, sie mit $ match,

auf die ID zu filtern

Meine aktuelle Aggregatabfrage sieht so aus

%Vor%

Es gibt mir ein Ergebnis, das so etwas lauert

%Vor%

Wenn ich $ match hinzufügen: {_id: 1}, werden keine Ergebnisse zurückgegeben.

Kann mir bitte jemand helfen, oder zeigen Sie mir, wie ich es lösen kann. Ich habe nach Ressourcen gesucht, aber ich finde keine gute Dokumentation zur Verwendung dieser Aggregatfunktionen. Die mongodb-Dokumente verwenden nur einfache Dokumente.

PS Ich weiß, dass ich das mit mapreduce machen kann, habe aber gehofft, dafür eine Aggregatfunktion verwenden zu können.

    
Tommy 13.09.2013, 11:54
quelle

1 Antwort

15

Abwickeln geht nur eine Ebene runter, also müssen Sie so oft wie viele Ebenen aufrufen, wenn Sie es wie

machen %Vor%

Es wird funktionieren, wie Sie es erwarten.

    
attish 13.09.2013, 14:32
quelle

Tags und Links