sql >> Database teknologi >  >> NoSQL >> MongoDB

Hvordan bruger man mongodb $group i java?

Du skal bruge aggregeringsramme. Importér statisk alle metoderne til hjælperklasser og brug nedenstående kode.

Brug af BasicDBObject er ikke påkrævet i nyere 3.x driver-api. Du bør bruge den nye klasse Document til lignende behov.

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();

Projektionsstadiet er valgfrit, kun tilføjet for at give et komplet eksempel.

Mere om aggregering her https://docs.mongodb.com/manual/reference/ operatør/aggregation/




  1. doRedis med mærkelig socket-forbindelsesfejl i Ubuntu Linux, R og RStudio

  2. _.flere kloner underdokumenter i stedet for at opdatere

  3. MongoDb-database vs samling

  4. Som at søge i MongoDB med Monk-biblioteket