【发布时间】:2018-03-27 02:22:05
【问题描述】:
我正在尝试从 mongodb 文档集合中获取其 cmets 与特定输入关键字匹配的用户列表。
我的用户文档定义看起来像
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 模板。 代码sn -p如下 查询查询 = new Query()
query.addCriteria(
Criteria.where("comments").in("/"+user+"/")
);
List<User> result = mongoTemplate.find(query, User.class);
【问题讨论】:
标签: spring mongodb spring-data-mongodb