我需要使用Java Spring mongoTemplate中的$ where运算符查询数据库。 这是查询:
db.myCollection.find( {$where : function () {
for (var index in this.*someKey*){
if (index.indexOf(*someValue*) > -1){
return this;
}
}
}})
但mongoTemplate运营商期望接收密钥而不是java脚本字符串函数。有没有办法解决?
答案 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;" +
"}" +
"}" +
"}";
}