MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

$filter в $project MongoDB с помощта на Spring Data

Успях да реша проблема си с Spring boot версия 1.4.1.RELEASE и направих това:

Aggregation aggregation = newAggregation(
            match(Criteria.where("devices.evaluationDate").is(date)),
            project().and(new AggregationExpression() {
                @Override
                public DBObject toDbObject(AggregationOperationContext aggregationOperationContext) {
                    DBObject filterExpression = new BasicDBObject();
                    filterExpression.put("input", "$devices");
                    filterExpression.put("as", "device");
                    filterExpression.put("cond", new BasicDBObject("$eq", Arrays.<Object> asList("$$device.evaluationDate", date)));
                    return new BasicDBObject("$filter", filterExpression);
                }
            }).as("devices")
    );

    AggregationResults<SpotMovimientos> list = mongoOperations.aggregate(aggregation,
            MyClass.class, MyClass.class);

Разработих въз основа на това:Spring Data MongoDb поддържа ли оператор за агрегиране на масиви $filter?

Проектът ми беше на Spring boot 1.4.0.RELEASE, но тази версия нямаше AggregationExpression интерфейс PUBLIC, така че току-що актуализирах до 1.4.1.RELEASE и свърших работа.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Автоматично генерирано поле за MongoDB с помощта на Spring Boot

  2. Как да получите няколко реда в списък, разделен със запетая в SQL

  3. Mongodb не може да стартира

  4. Има ли някакъв начин да се имплементира пагинация в spring webflux и spring data reactive

  5. MongoDB $rtrim