2017-10-15 49 views
0

我想獲取其評論匹配特定輸入關鍵字從mongodb文檔集合的用戶列表。春天mongodb存儲庫返回0條目的類型列表的字段查詢

我的用戶文件確定指標看起來像

 public class User { 
     @Id 
     private String id; 
     private String name; 
     List<String> comments; 
     } 

我的春天庫的代碼看起來像

 @RepositoryRestResource(collectionResourceRel = "user", path = "user") 
     public interface UserRepository extends 
MongoRepository<User,String>,CustomUserRepository { 


    @Query(value = "{'comments': ?0} ") 
    List<User> findByComments(String username); 

    List<User> findByCommentsIn(List<String> comments); 

    List<User> findBycomments(String username); 

,當我從蒙戈查詢它外殼,它工作正常, db.user.find({"comments": /test/})返回預期的結果。

但同樣不適用於Spring Data mongodb。

而且我還嘗試使用自定義存儲庫來使用mongo模板。 的代碼片段如下所示 查詢查詢=新的Query()

query.addCriteria(
      Criteria.where("comments").in("/"+user+"/")    
    );  

    List<User> result = mongoTemplate.find(query, User.class); 

回答

0

進一步的研究之後,它的工作原理,如果我在我的查詢方法使用$正則表達式。 @Query(value =「{'comments':{$ regex:?0}}」) List findByComment(String comment);

另外,有興趣知道如何調試這些問題。