MongoDB
 sql >> Cơ Sở Dữ Liệu >  >> NoSQL >> MongoDB

$ filter bên trong $ project MongoDB Sử dụng Dữ liệu Mùa xuân

Tôi đã giải quyết được sự cố của mình với Phiên bản khởi động mùa xuân 1.4.1.RELEASE và tôi đã làm được điều này:

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

Tôi đã giải thích dựa trên điều này:Spring Data MongoDb có hỗ trợ toán tử tổng hợp mảng $ filter không?

Dự án của tôi là khởi động Spring 1.4.0.RELEASE nhưng phiên bản đó không có AggregationExpression giao diện PUBLIC, vì vậy tôi vừa cập nhật lên 1.4.1.RELEASE và tôi đã làm việc.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Tùy chọn Mongoose autoReconnect

  2. $ unset trên nhiều trường trong mongodb

  3. MongoDB $ trong Nhà điều hành đường ống tổng hợp

  4. có một cuộc gọi lại lỗi kết nối mongoose không

  5. Tìm trong Double Nested Array MongoDB