【问题标题】:Spring Data Mongo test fieldSpring Data Mongo 测试场
【发布时间】:2014-10-26 20:48:03
【问题描述】:

我正在使用 Spring Data Mongo 和 Mongo DB;

在集合中,文档有一个字段,假设包含一个整数,我们称之为 myInt。

我想检索 myInt 介于 2 个动态整数之间的所有文档,例如:

myInt - dynInt1 < myInt < myInt + dynInt2

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

【问题讨论】:

    标签: spring mongodb criteria


    【解决方案1】:

    在您的 SpringData 接口中尝试以下方法:

        YourEntity findByMyIntLessThanAndMyIntGreaterThan(int min, int max);
    

    接下来,执行一次 find 调用,获取 myInt 值并使用这两个值执行第二次调用:

        int myInt = myRepository.findByXXXX().getMyInt();
        int min = myInt - dynInt1;
        int max = myInt + dynInt2;
        myRepository.findByMyIntLessThanAndMyIntGreaterThan(min, max);
    

    【讨论】:

      【解决方案2】:

      是的,可以在SpringData中如下进行:

      query.addCriteria(Criteria.where("field").gt(value1).lt(value2));
      

      【讨论】:

      • 但我该怎么做 query.addCriteria(Criteria.where("field").gt("field" - value1).lt("field" + value2));
      【解决方案3】:

      如果您还想在标准中包含动态 int 值,请使用 gte(大于等于)和 lte(小于等于)。

      【讨论】:

      • 但我该怎么做 query.addCriteria(Criteria.where("field").gt("field" - value1).lt("field" + value2));
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-01
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      • 2015-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多