gpt4 book ai didi

java - MongoItemReader 中的限制和跳过选项

转载 作者:太空宇宙 更新时间:2023-11-04 14:26:22 25 4
gpt4 key购买 nike

在我的 Spring Batch 应用程序中,我需要将数据从 mongoDB 迁移到 postgreSQL。我正在使用MongoItemReader用于读取数据。可以通过设置多个属性(例如查询、排序、字段等)来配置该读取器。但我不想从集合中读取所有数据,我只想读取其中的一部分并通过“跳过”和“获取这部分数据”限制'游标属性。是否有能力通过此类来做到这一点,或者我应该使用其他 mongo reader 来解决我的问题?

这里是我的阅读器类的代码,它扩展了 MongoItemReader。

public class MongoMigrateItemReader<T extends Migratable> extends MongoItemReader<T> implements ItemReader<T> {
protected String collectionName;
@Autowired
MongoTemplate mongoTemplate;

public MongoMigrateItemReader() {
}

@PostConstruct
public void init() {
Type type = ((ParameterizedType) this.getClass().getGenericSuperclass()).getActualTypeArguments()[0];
Class<T> clazz = (Class<T>) type;
this.setTemplate(mongoTemplate);
this.setTargetType(clazz);
this.setCollection(collectionName);
this.setQuery("{}");
HashMap<String, Sort.Direction> sort = new HashMap<>();
sort.put("_id", Sort.Direction.ASC);
this.setSort(sort);
}

}

我想在 init() 方法中设置限制和跳过选项

最佳答案

MongoItemReader 利用分页作为返回数据而不是游标的机制。由于没有完整数据集的游标,因此不能使用 MongoDB 的 cursor#skipcursor#limit 。为了获得您想要做的事情,您必须实现自己的 MongoItemReader。话虽如此,如果您认为对其他人有用,我们将不胜感激!

关于java - MongoItemReader 中的限制和跳过选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26627332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com