Java Spring+MongoDB-MongoTemplate+条件查询

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

我使用的是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.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查询是否可以分页或其他方式..请检查:另外:分页是这种方法的一个挑战。有一种可能的解决方案可以实现分页,但折衷的办法是对数据库进行两次调用。