sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur använder man mongodb $group i java?

Du måste använda aggregeringsramverket. Importera statiskt alla metoder för hjälpklasser och använd koden nedan.

Användning av BasicDBObject krävs inte i nyare 3.x drivrutinsapi. Du bör använda den nya klassen Document för liknande 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 är valfritt, endast tillagt för att ge ett komplett exempel.

Mer om aggregering här https://docs.mongodb.com/manual/reference/ operatör/aggregation/




  1. MongoDB 'count()' är väldigt långsam. Hur förfinar/arbetar vi med det?

  2. pymongo får E11000 duplicate key error index pymongo error

  3. Stubbar Redis-interaktioner i javascript med Sinon

  4. Hur man får data Mongo-data med hjälp av aggregerad MongoDB