2017-10-15 12 views
0

コメントがmongodbドキュメントコレクションの特定の入力キーワードと一致するユーザのリストを取得しようとしています。Springのmongodbリポジトリは、タイプリストのフィールドでクエリの0エントリを返します

私のユーザードキュメントdefintionが

 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のデータmongodbで動作しません。

また、mongoテンプレートを使用するためにカスタムリポジトリを使用してみました。 クエリのクエリ=新しいクエリ()もう少し研究した後

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

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

答えて

0

は、次のように コードスニペットがある私は私のクエリメソッドで$正規表現を使用している場合、それが動作します。 @クエリー(値= "{'コメント':{$ regex:?0}}」) リストfindByComment(文字列コメント);

さらに、このような問題をデバッグする方法を知ることに興味があります。

関連する問題