我使用的是Spring Data Mongo和Mongo DB;
在一个集合中,docs有一个字段,让我们说包含一个整数,我们称之为myInt。
我想检索所有具有myInt的文档,其中包括2个动态整数:
myInt - dynInt1 < myInt < myInt + dynInt2
我需要在请求中使用字段myInt,我可以在java中预先计算它以在creterias中使用它。
答案 0 :(得分:0)
在SpringData接口中尝试以下方法:
YourEntity findByMyIntLessThanAndMyIntGreaterThan(int min, int max);
接下来,执行查找调用,获取myInt值并使用以下两个值执行第二次调用:
int myInt = myRepository.findByXXXX().getMyInt();
int min = myInt - dynInt1;
int max = myInt + dynInt2;
myRepository.findByMyIntLessThanAndMyIntGreaterThan(min, max);
答案 1 :(得分:-1)
是的,它可以在SpringData中完成,如下所示:
query.addCriteria(Criteria.where("field").gt(value1).lt(value2));
答案 2 :(得分:-1)
如果要在条件中包含动态int值,请使用gte(大于等于)和lte(小于等于)。