Ich habe ein Übereinstimmungskriterium wie this-Spring Data + Mongo- Summe von Feld ohne Gruppe
Criteria criteria = new Criteria()
.and("paidMobileMetadata").in(metadataList)
.and("localDate").gt(startDate).lte(endDate);
Jetzt möchte ich Summe von Feld bekommen sagen „Geld“ gehört zur oben criterie ohne irgendeine Feld Gruppierung über.
Früher i gleiche Problem hatte, wo ich dieses Spiel Kriterium über einen gewissen Bereich zu einer Gruppe haben, ich mag es this-
Aggregation agg = Aggregation.newAggregation(
Aggregation.match(new Criteria()
.and("paidMobileMetadata").in(metadataList)
.and("localDate").gt(startDate).lte(endDate)),
Aggregation.group("anyField").sum("money").as("total")
);
getan hatte, aber hier kippe ich Gruppe es, Gibt es eine Möglichkeit in Mongo zu Gruppe das ganze Dokument, ohne irgendein Feld.
Explaination:
sagen wir mal 500 Zeilen/doc zu meinen Kriterien gehören, und alles Geld Feld haben in it.I ohne Gruppierung aller 500 Geld, summieren möchten.
Wenn ich wie this-
versuchtAggregation agg = Aggregation.newAggregation(
Aggregation.match(new Criteria()
.and("paidMobileMetadata").in(metadataList)
.and("localDate").gt(startDate).lte(endDate)),
Aggregation.group(null).sum("money").as("total")
);
Geben Sie mir Ausnahme sagen Aggregation Feld nicht null oder leer sein kann!
Können Sie einige Beispieldokumente und Ihre erwartete Ausgabe zeigen? – chridam
@chridam haben durch Problem erklärt. –