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

Agregace skupin pomocí jarních dat mongodb

V podstatě hledáte extractYear() který mapuje $year operátor s 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)
)

To obecně musí jít do $project aby byli pomocníci šťastní.

Pokud opravdu chcete výraz v rámci $group pak můžete přidat vlastní výraz operace:

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. Když mongodb kurzor vyprší

  2. Node.js a Redis / hget se synchronizují

  3. Časové razítko Mongodb je velmi nepřesné - mongoose

  4. Metoda MongoDB LinQ Select skutečně získá pouze podmnožinu polí?