sql >> Databáze >  >> NoSQL >> MongoDB

Jak používat mongodb $group v Javě?

Musíte použít agregační rámec. Staticky importujte všechny metody pomocných tříd a použijte níže uvedený kód.

Použití BasicDBObject není vyžadován v novějších 3.x rozhraní API ovladače. Měli byste použít novou třídu Document pro podobné potřeby.

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

Fáze projekce je volitelná, přidává se pouze jako úplný příklad.

Více o agregaci zde https://docs.mongodb.com/manual/reference/ operátor/agregace/




  1. Jak získat počet více odpovídajících filtrů v mongoDB

  2. MongoDB:Hromadné vložení (Bulk.insert) versus vložení vícenásobné (insert([...]))

  3. Aplikace funguje ve vývoji, ale ne při nasazení do heroku

  4. Jak vytvořit dotaz v této struktuře vnořených dokumentů (MongoDB)?