我正在尝试获取其评论与mongodb文档集合中的特定输入关键字匹配的用户列表。
我的用户文档定义类似于
public class User {
@Id
private String id;
private String name;
List<String> comments;
}
我的Spring Repository代码看起来像
@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);
当我从mongo shell查询它时它工作正常,
db.user.find({"comments": /test/})
返回预期结果。
但同样不适用于Spring Data mongodb。
我还尝试使用Custom Repository来使用mongo模板。 代码段如下 查询查询=新查询()
query.addCriteria(
Criteria.where("comments").in("/"+user+"/")
);
List<User> result = mongoTemplate.find(query, User.class);
答案 0 :(得分:0)
经过一番研究后,如果我在查询方法中使用$ regex,它就有效。 @Query(值=&#34; {&#39;评论&#39;:{$ regex:?0}}&#34;) 列出findByComment(String comment);
另外,有兴趣了解如何调试此类问题。