java - MongoTemplate - 带有 JS 函数的地方

标签 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 where 运算符期望接收 key 而不是 java 脚本字符串函数。有没有办法解决?

最佳答案

我最终使用了 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;" +
                         "}" +
                     "}" +
                "}";
    }

关于java - MongoTemplate - 带有 JS 函数的地方,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37292730/

相关文章:

java - 在WEB-INF/classes下具有已编译类的Gradle WAR

java - 在 SOAPUI 中用什么替换 XML 响应断言的正则表达式?

java - 如何在JSP中显示对象的数据

java - 将 Spring Boot Docker 容器连接到 MongoDB docker 容器

mongodb - 如何使用 Robo 3T 从 MongoDB 导出 JSON

mongodb - 如何计算 MongoDB 聚合中集合中前 20% 的平均值?

java - 实现java接口(interface)并使用泛型

java - SOAP 信封响应错误 : Error reading XMLStreamReader

spring - 成功部署 Spring 应用程序后运行代码

javascript - 我应该怎么做聚合?