Spring + MongoDB - MongoTemplate + Criteria 查询 [英] Spring + MongoDB - MongoTemplate + Criteria Query

查看:21
本文介绍了Spring + MongoDB - MongoTemplate + Criteria 查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用 Spring Boot + MongoDB.我需要根据一些标准查询数据库,我的方法如下所示:

I am using Spring Boot + MongoDB. I need to query database based on some criteria where my methods looks like below:

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

search.addCriteria(Criteria.where("ItmId").in(request.getItmIds()));

request.getItmIds 有 100 万个 ID,因此我遇到了异常

org.bson.BsonMaximumSizeExceededException:46282052 的文档大小大于 16793600 的最大值

org.bson.BsonMaximumSizeExceededException: Document size of 46282052 is larger than maximum of 16793600

谁能帮我解决这个问题?

Can anyone help me with this one?

推荐答案

如果您使用的是 Spring Data JPA,您可以执行以下操作:findBySomeField(String someField)

If you are using Spring Data JPA, you can do something like: findBySomeField(String someField)

如果您有更复杂的查询,您实际上可以使用 JPQL 并编写自定义查询.

If you have a more complex query, you can actually use JPQL and write a custom query.

@Query(value = "SELECT o.* from SomeObject o WHERE :someField IS NULL OR o.someField = :somefield)
public findBySomeField(@Param("someField") String someField);

这篇关于Spring + MongoDB - MongoTemplate + Criteria 查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆