Necesito escribir una aplicación con la que pueda hacer consultas complejas usando spring-data y mongodb. Empecé usando MongoRepository, pero luché con consultas complejas para encontrar ejemplos o para comprender realmente la sintaxis.
Estoy hablando de consultas como esta:
@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String> {
List<User> findByEmailOrLastName(String email, String lastName);
}
o el uso de consultas basadas en JSON que probé por ensayo y error porque no entiendo la sintaxis correcta. Incluso después de leer la documentación de mongodb (ejemplo que no funciona debido a una sintaxis incorrecta).
@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);
}
Después de leer toda la documentación, parece que mongoTemplate
está mucho mejor documentada MongoRepository
. Me refiero a la siguiente documentación:
http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/
¿Puede decirme qué es más conveniente y poderoso de usar? mongoTemplate
o MongoRepository
? ¿Ambos son iguales o uno de ellos carece de más características que el otro?