Spring Data Mongo测试领域

时间:2014-09-02 14:30:44

标签: spring mongodb criteria

我使用的是Spring Data Mongo和Mongo DB;

在一个集合中,docs有一个字段,让我们说包含一个整数,我们称之为myInt。

我想检索所有具有myInt的文档,其中包括2个动态整数:

myInt - dynInt1 < myInt < myInt + dynInt2

我需要在请求中使用字段myInt,我可以在java中预先计算它以在creterias中使用它。

3 个答案:

答案 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(小于等于)。