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 à trouver des exemples de requêtes complexes ou à comprendre 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é par tâtonnement parce que je n'arrive pas à maîtriser la syntaxe. Même après avoir lu la documentation de mongodb (exemple non fonctionnel à cause de la mauvaise syntaxe).
@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 mongoTemplate
est bien mieux documenté que MongoRepository
. Je me réfère à la documentation suivante :
http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/
Pouvez-vous me dire ce qui est le plus pratique et le plus puissant à utiliser ? mongoTemplate
o MongoRepository
? Est-ce que les deux ont la même maturité ou est-ce que l'un d'entre eux manque plus de fonctionnalités que l'autre ?