Spring引导,mongo DB如何比较列值大于0

时间:2018-05-18 13:37:51

标签: spring mongodb

该应用程序处于spring boot和mongo db。

我想找到所有记录,其中奖品大于0和其他一些标准。

我试过这样的事情,

   @Query("{'prize' : {$gt : ?0 }, 'logDate' : {$lt : ?1} , 'api' : ?2 , 'service' : ?3}")
    List<SomeLog> findByLogDateBeforeAndApiAndService(double prizeZero,Date endDateAndTime, ApiName apiName, String service);

我明确将prizeZero作为参数发送为0.0。和奖品比较。它工作正常。

但我正在寻找,如何避免使用prizeZero参数,并直接在查询中比较奖品,就像我们在纯SQL中那样prize > 0

试过,

  @Query("{'prize' : {$gt : 0 }, 'logDate' : {$lt : ?1} , 'api' : ?2 , 'service' : ?3}")
    List<SomeLog> findByLogDateBeforeAndApiAndService(Date endDateAndTime, ApiName apiName, String service);

但它给出了一个错误,

参数索引无效!您似乎已经声明了太少的查询方法参数!

有人可以建议我该怎么做。

1 个答案:

答案 0 :(得分:1)

嗯,你正在使用&#34;?3&#34;这表明有4个参数,但你只有3.也许尝试-1你的字符串中的所有参数位置: @Query("{'prize' : {$gt : 0 }, 'logDate' : {$lt : ?0} , 'api' : ?1 , 'service' : ?2}")