2016-05-18 4 views
1

Мне нужно запросить db с помощью оператора $ where из Java Spring mongoTemplate. Это запрос:MongoTemplate - где с функцией JS

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

Но mongoTemplate где оператор рассчитывает получить ключ не ява функции строки сценария. Во всяком случае, вокруг?

+0

Я думаю, вы можете использовать Javascript выражения. – shankarsh15

ответ

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;" + 
         "}" + 
        "}" + 
       "}"; 
    } 
Смежные вопросы