【发布时间】:2019-07-27 20:50:40
【问题描述】:
我正在使用 Spring Boot + MongoDB。我需要根据一些标准查询数据库,我的方法如下所示:
@Override
public List<MyCollection> findBuyByCriteria(Request request) {
Query search = new Query();
search.addCriteria(Criteria.where("ItmId").in(request.getItmIds()));
return mongoTemplate.find(search, MyCollection.class);
}
我面临的问题是: 在行
search.addCriteria(Criteria.where("ItmId").in(request.getItmIds()));
request.getItmIds 有 100 万个 Id,因此我遇到了异常
org.bson.BsonMaximumSizeExceededException: 文档大小 46282052 大于最大值 16793600
谁能帮我解决这个问题?
【问题讨论】:
-
request.getItmIds()来自哪里?不能分页让你不一次发送100万个ID吗? -
不能分页让你不一次发送100万个ID吗? - 这正是我卡住的地方.. MongoDB 查询可以分页或其他什么..
-
这种方法的分页是一个挑战。有一种可能的解决方案来实现分页,但要权衡的是对数据库进行两次调用。
标签: java spring mongodb spring-boot spring-data