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

Gruppesammenlægning ved hjælp af forårsdata mongodb

Du leder grundlæggende efter extractYear() som er knyttet til $year operatør med MongoDB:

Aggregation aggregation = Aggregation.newAggregation(
    Aggregation.match(new Criteria().andOperator(criteria())),
    Aggregation.project().and("invoiceDate").extractYear().as("_id"),
    Aggregation.group("_id"),
    Aggregation.sort(Sort.Direction.DESC, "_id)
)

Dette skal generelt gå ind i et $project for at gøre hjælperne glade.

Hvis du virkelig vil have udtrykket i $group så kan du tilføje et brugerdefineret operationsudtryk:

Aggregation aggregation = Aggregation.newAggregation(
  Aggregation.match(new Criteria().andOperator(criteria())),
  new AggregationOperation() {
    @Override
    public Document toDocument(AggregationOperationContext aggregationOperationContext) {
      return new Document("$group",
        new Document("_id", new Document("$year","$invoiceDate") )
      );
    }
  },
  Aggregation.sort(Sort.Direction.DESC, "_id)
)



  1. Redis Sentinels med TLS

  2. For mange åbne filer, mens du sikrer indeks mongo

  3. Hvordan kan jeg ændre/definere standarddatabase for Mongodb i Spring-data?

  4. Integrationstest med Testcontainere + Quarkus + MongoDB