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

Truy vấn một tài liệu và tất cả các tài liệu con của nó phù hợp với một điều kiện trong mongodb (sử dụng spring)

Bạn sẽ cần sử dụng MongoTemplate được cung cấp trong phần phụ thuộc dữ liệu mongo mùa xuân. Không có hỗ trợ out of box nào cho $ filter trong phiên bản phát hành hiện tại. Sử dụng AggressionExpression. Bao gồm hình chiếu bên dưới trong dự án. Sử dụng phiên bản dữ liệu mùa xuân mongo 1.8.5.

Aggregation aggregation = newAggregation(
        match(Criteria.where("_id").is(1)),
        project( "_id", "sensorName", "samplePeriod").and(new AggregationExpression() {
            @Override
            public DBObject toDbObject(AggregationOperationContext aggregationOperationContext) {
                DBObject filter = new BasicDBObject("input", "$data").append("as", "result").append("cond",
                        new BasicDBObject("$and", Arrays.<Object> asList(new BasicDBObject("$gte", Arrays.<Object> asList("$$result.timestamp", 1483537204000L)),
                                new BasicDBObject("$lte", Arrays.<Object> asList("$$result.timestamp", 1483537214000L)))));
                return new BasicDBObject("$filter", filter);
            }
        }).as("data")
);

List<BasicDBObject> dbObjects = monoTemplate.aggregate(aggregation, "collectionname", BasicDBObject.class).getMappedResults();


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Di chuyển MongoDB sang DynamoDB, Phần 1

  2. TypeError:ObjectId ('') không thể tuần tự hóa JSON

  3. mongodb cách thay đổi cổng mặc định

  4. Tìm hiểu xem một Truy vấn có sử dụng Chỉ mục trong MongoDB hay không

  5. 3 cách chuyển đổi chuỗi thành ngày trong MongoDB