Java Spring+MongoDB-MongoTemplate+条件查询
我使用的是Spring Boot+MongoDB。我需要根据一些条件查询数据库,其中我的方法如下所示:Java Spring+MongoDB-MongoTemplate+条件查询,java,spring,mongodb,spring-boot,spring-data,Java,Spring,Mongodb,Spring Boot,Spring Data,我使用的是Spring Boot+MongoDB。我需要根据一些条件查询数据库,其中我的方法如下所示: @Override public List<MyCollection> findBuyByCriteria(Request request) { Query search = new Query(); search.addCriteria(Criteria.where("ItmId").in(request.getItmIds()));
@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.addCriteriaCriteria.whereItmId.inrequest.getItmIds
request.getItmIds有一百万个ID,因此我得到了一个异常
org.bson.bsonMaximumSizeExceedeException:文档大小46282052大于最大值16793600
有人能帮我解决这个问题吗?如果您使用的是Spring Data JPA,您可以执行以下操作: findBySomeFieldString someField 如果您有一个更复杂的查询,那么实际上可以使用JPQL并编写一个自定义查询
@Query(value = "SELECT o.* from SomeObject o WHERE :someField IS NULL OR o.someField = :somefield)
public findBySomeField(@Param("someField") String someField);
request.getItmIds来自哪里?它不能被分页,这样你就不会一次发送一百万个ID吗?它不能被分页,这样你就不会一次发送一百万个ID吗这正是我被困的地方。。MongoDB查询是否可以分页或其他方式..请检查:另外:分页是这种方法的一个挑战。有一种可能的解决方案可以实现分页,但折衷的办法是对数据库进行两次调用。