J'ai besoin d'écrire une application avec laquelle je peux faire des requêtes complexes en utilisant spring-data et mongodb. J'ai commencé par utiliser MongoRepository mais j'ai eu du mal avec des requêtes complexes pour trouver des exemples ou pour comprendre réellement la syntaxe.
Je parle de requêtes comme celle-ci:
@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String> {
List<User> findByEmailOrLastName(String email, String lastName);
}
ou l'utilisation de requêtes basées sur JSON que j'ai essayées par essais et erreurs parce que je ne comprends pas la bonne syntaxe. Même après avoir lu la documentation de mongodb (exemple qui ne fonctionne pas en raison d'une syntaxe incorrecte).
@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);
}
Après avoir lu toute la documentation, il semble que ce mongoTemplate
soit bien mieux documenté MongoRepository
. Je fais référence à la documentation suivante:
http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/
Pouvez-vous me dire ce qui est plus pratique et plus puissant à utiliser? mongoTemplate
ou MongoRepository
? Les deux sont-ils les mêmes matures ou l'un d'eux manque-t-il plus de fonctionnalités que l'autre?