2017-10-15 66 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);

另外,有兴趣知道如何调试这些问题。