MongoDB
 sql >> Teknologi Basis Data >  >> NoSQL >> MongoDB

Cara menggunakan Kueri Agregasi dengan MongoItemReader dalam batch musim semi

memperluas MongoItemReader dan menyediakan implementasi Anda sendiri untuk metode doPageRead(). Dengan cara ini Anda akan memiliki dukungan pagination penuh dan pembacaan dokumen ini akan menjadi bagian dari sebuah langkah.

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

}
}

Dan pengambil dan penyetel lainnya dan metode lainnya. Lihat saja kode sumber untuk MongoItemReader di sini .Saya juga menghapus dukungan Query darinya. Anda dapat memilikinya juga dengan metode yang sama, cukup salin tempel dari MongoItemReader. Sama dengan Sortir.

Dan di kelas di mana Anda memiliki pembaca, Anda akan melakukan sesuatu seperti:

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. Filter array bersarang dengan kondisi berdasarkan nilai objek multi-level dan perbarui - agregat MongoDB + pembaruan

  2. Hapus dokumen yang disematkan dalam susunan dokumen bersarang

  3. Objek Dokumen MongoEngine yang dibuat menggunakan from_json tidak menyimpan

  4. Bagaimana cara memperbarui jika ada jika tidak, masukkan dokumen baru?

  5. MongoDB $addToSet