sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur man filtrerar array i Mongodb-dokument med Spring

Som du sa kommer elemMatch endast att hämta det första objektet i en array så du måste använda aggregerad framtid för att uppnå din utdata

    MatchOperation match = Aggregation.match(Criteria.where("_id.teacherId").is("1").and("groups.students").in(11));
    UnwindOperation unwind = Aggregation.unwind("groups");
    GroupOperation group = Aggregation.group("_id").push("groups").as("groups").first("points").as("points");
    Aggregation aggregation = Aggregation.newAggregation(unwind, match, group);
    AggregationResults<BasicDBObject> groupResults = mongoTemplate.aggregate(aggregation,
                    CustomGroupsDocument.class, BasicDBObject.class);
    List<BasicDBObject> result = groupResults.getMappedResults();



  1. Java+Redis vs vanlig Java-effektivitet för dataintensiva applikationer?

  2. Mongoose Aggregate :begränsa antalet poster i $group

  3. Det går inte att ansluta till mongoDB som körs i docker-container

  4. Bygga denna LEFT() SQL i MongoDB Query?