sql >> Database teknologi >  >> NoSQL >> MongoDB

Spring MongoItemReader læser ikke alle poster på enkelt eksekvering

Jeg gætter på, at du sandsynligvis opdaterer den samling, du læser fra, og du opdaterer også et felt, som forespørgslen bruger. Hvis ja, så havde jeg det samme problem for nylig.

MongoItemReader er en sidelæser. Så hver gang skribenten opdaterer disse poster, har læseren en mindre pulje, men siden vokser stadig.

Så forestil dig, at vi har 20 elementer og læser 5 elementer ad gangen:

1) Læser punkt 1-5 fra i alt 20.

2) Opdaterer punkt 1-5, og nu er der i alt 15 mulige varer

3) Læser punkt 6-10 fra i alt 15.

4) Opdaterer punkt 6-10, og nu er der i alt 10 mulige varer.

5) Læser punkt 11-15 af 10 mulige poster

6) Læs returnerer null, fordi der ikke er returneret noget for den side.

Så nu har du kun behandlet halvdelen.

Jeg fulgte vejledningen nedenfor for at oprette en MongoDbCursorItemReader, som løste dette problem for mig:https://blog.zenika.com/2012/05/23/spring-batch-and-mongodb-cursor-based-item-reader/




  1. Mongoose/mongoDB-forespørgsel slutter sig til.. men jeg kommer fra en sql-baggrund

  2. Beregn en score fra et eksisterende felt med betingelser

  3. Opdatering af array af objekter i mongodb

  4. Springdata og mongoDB - arv og @DBRef