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

Získejte tříděné odlišné hodnoty pomocí MongoTemplate

Na základě předchozí odpovědi jsem vyřešil svůj problém s Mongo Aggregation:

@Override
public List<Object> getDistinctValues(String collection, String fieldName, Sort.Direction sort) {
    Aggregation agg = Aggregation.newAggregation(
            Aggregation.group(fieldName),
            Aggregation.sort(sort, "_id")
    );
    return mongoTemplate.aggregate(agg, collection, Document.class)
            .getMappedResults()
            .stream()
            .map(item -> item.get("_id"))
            .collect(Collectors.toList());
}

Doufám, že to bude pro někoho užitečné.



  1. mongodb $addToSet na pole bez pole při aktualizaci na upsert

  2. Proč nápověda Mongo umožňuje spuštění dotazu až 10krát rychleji?

  3. Jak agregovat na obrovském poli v mongoDB?

  4. Bezproblémové měřítko pro vaše servery MongoDB