我需要编写一个应用程序,我可以使用 spring-data 和 mongodb 进行复杂的查询。我从使用 MongoRepository 开始,但在查找示例或实际理解语法时遇到了复杂的查询。
我说的是这样的查询:
@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String> {
List<User> findByEmailOrLastName(String email, String lastName);
}
或使用基于 JSON 的查询,我通过反复试验尝试过,因为我没有得到正确的语法。即使在阅读了 mongodb 文档之后(由于语法错误导致的非工作示例)。
@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String> {
@Query("'$or':[{'firstName':{'$regex':?0,'$options':'i'}},{'lastName':{'$regex':?0,'$options':'i'}}]")
List<User> findByEmailOrFirstnameOrLastnameLike(String searchText);
}
在通读所有文档之后,似乎记录mongoTemplate
得更好MongoRepository
。我指的是以下文档:
http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/
你能告诉我用什么更方便、更强大吗?mongoTemplate
还是MongoRepository
?两者是否同样成熟,或者其中一个是否比另一个缺少更多功能?