MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie verwende ich mongodb $group in Java?

Sie müssen das Aggregationsframework verwenden. Importieren Sie statisch alle Methoden von Hilfsklassen und verwenden Sie den folgenden Code.

Verwendung von BasicDBObject ist in neueren 3.x-Treiber-APIs nicht erforderlich. Sie sollten die neue Klasse Document verwenden für ähnliche Bedürfnisse.

import static com.mongodb.client.model.Accumulators.*;
import static com.mongodb.client.model.Aggregates.*;
import static java.util.Arrays.asList;
import static com.mongodb.client.model.Filters.*;
import static com.mongodb.client.model.Projections.*;

Bson match = match(and(ne("DOCRANK", 0), ne("TAB", "People-Tab")));
Bson group = group("$USERID", first("USERID", "$USERID"), first("DOCID", "$DOCID"), first("DOCRANK", "$DOCRANK"), first("QUERYTEXT", "$QUERYTEXT"));
Bson projection = project(fields(include("USERID", "DOCID", "DOCRANK", "QUERYTEXT"), excludeId()));
MongoCursor<Document> cursor = collection.aggregate(asList(match, group, projection)).iterator();

Die Projektionsstufe ist optional und wird nur hinzugefügt, um ein vollständiges Beispiel zu geben.

Mehr über Aggregation hier https://docs.mongodb.com/manual/reference/ Operator/Aggregation/