Schnellster Weg, um Histogramme von Array-Größen mit dem MongoDB Aggregation Framework zu erhalten

9

Ich versuche, eine Liste der Anzahl der Datensätze zu erhalten, die Arrays unterschiedlicher Größe haben. Ich möchte die Verteilung der Array-Größen für alle Datensätze erhalten, damit ich ein Histogramm wie folgt erstellen kann:

%Vor%

Die rohen Dokumente sehen also ungefähr so ​​aus:

%Vor%

Bisher habe ich das Aggregationsframework und einige hier verwendet hoch mit

%Vor%

Dies scheint mir die Ergebnisse zu geben, die ich möchte, aber es ist nicht sehr schnell. Ich frage mich, ob es etwas gibt, das ich so machen kann, das nicht zwei Gruppenrufe benötigen. Die Syntax ist hier falsch, aber was ich versuche, ist, den Zählwert in das erste _id-Feld zu setzen:

%Vor%     
Scott 18.04.2013, 17:28
quelle

1 Antwort

5

Nun, da 2.6 out ist, unterstützt das Aggregationsframework einen neuen Array-Operator $size , die es dir erlauben, $project der Array-Größe ohne Abwickeln und Neugruppieren zu verwenden.

%Vor%     
Asya Kamsky 26.04.2014, 06:54
quelle