MongoTemplate - JS功能的地方

时间:2016-05-18 07:19:29

标签: java spring mongodb mongotemplate

我需要使用Java Spring mongoTemplate中的$ where运算符查询数据库。 这是查询:

db.myCollection.find( {$where : function () {
    for (var index in this.*someKey*){
        if (index.indexOf(*someValue*) > -1){
          return this;
        }
    }
}})

但mongoTemplate运营商期望接收密钥而不是java脚本字符串函数。有没有办法解决?

1 个答案:

答案 0 :(得分:0)

我最终使用了Spring MongoDB存储库(我也需要分页)

public interface MyCollectionRepository extends PagingAndSortingRepository<MyCollectionClass, String> {
    @Query("{$where : ?0}")
    Page<MyCollectionClass> findSomething(String whereQuery, Pageable pageable);

     .....
}

并且

 public static String whereQuery(String someValue){
        return "function() {" +
                    "for (var index in this.*someKey*){" +
                        "if (index.indexOf(\""+ someValue+"\") > -1){" +
                          "return this;" +
                         "}" +
                     "}" +
                "}";
    }