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

Cách sử dụng Truy vấn tổng hợp với MongoItemReader trong đợt mùa xuân

mở rộng MongoItemReader và cung cấp triển khai của riêng bạn cho phương thức doPageRead (). Bằng cách này, bạn sẽ có hỗ trợ phân trang đầy đủ và việc đọc tài liệu này sẽ là một phần của một bước.

public class CustomMongoItemReader<T, O> extends MongoItemReader<T> {
private MongoTemplate template;
private Class<? extends T> inputType;
private Class<O> outputType
private MatchOperation match;
private ProjectionOperation projection;
private String collection;

@Override
protected Iterator<T> doPageRead() {
    Pageable page = PageRequest.of(page, pageSize) //page and page size are coming from the class that MongoItemReader extends
    Aggregation agg = newAggregation(match, projection, skip(page.getPageNumber() * page.getPageSize()), limit(page.getPageSize()));
    return (Iterator<T>) template.aggregate(agg, collection, outputType).iterator();

}
}

Và getter và setters khác và các phương pháp khác. Chỉ cần xem mã nguồn cho MongoItemReader tại đây . Tôi cũng đã xóa hỗ trợ Truy vấn khỏi nó. Bạn cũng có thể có điều đó trong cùng một phương pháp chỉ cần sao chép, dán nó từ MongoItemReader. Tương tự với Sắp xếp.

Và trong lớp học mà bạn có người đọc, bạn sẽ làm điều gì đó như:

public MongoItemReader<T> reader() {
    CustomMongoItemReader reader = new CustomMongoItemReader();
    reader.setTemplate(mongoTemplate);
    reader.setName("abc");
    reader.setTargetType(input.class);
    reader.setOutputType(output.class);
    reader.setCollection(myMongoCollection);
    reader.setMatch(Aggregation.match(new Criteria()....)));
    reader.setProjection(Aggregation.project("..","..");
    return reader;
}


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Cách xử lý dấu gạch nối trong định nghĩa Lược đồ GraphQL

  2. Tự động tính toán các trường trong mongodb

  3. Giới hạn sử dụng RAM MongoDB

  4. Khóa không được chứa. lỗi trong pymongo

  5. MongoDB:Khung tổng hợp:Nhận tài liệu ngày cuối cùng cho mỗi ID nhóm