MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

$filter wewnątrz $project MongoDB przy użyciu Spring Data

Udało mi się rozwiązać mój problem z wersją rozruchową Spring 1.4.1.RELEASE i zrobiłem to:

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);

Rozwinąłem na tej podstawie:Czy Spring Data MongoDb obsługuje operator agregacji tablicy $filter?

Mój projekt był na Spring boot 1.4.0.RELEASE, ale ta wersja nie miała AggregationExpression interface PUBLIC, więc właśnie zaktualizowałem do wersji 1.4.1.RELEASE i udało mi się.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 5 sposobów na uzyskanie minut z randki w MongoDB

  2. Jak uruchomić powłokę mongodb w kontenerze docker?

  3. uaktualnij mongodb

  4. Jak wykonać operacje Update w GridFS (przy użyciu Javy)?

  5. Konwertuj datę z milisekund na obiekt ISODate