Muszę napisać aplikację, w której będę mógł wykonywać złożone zapytania przy użyciu spring-data i mongodb. Zaczynałem od korzystania z MongoRepository, ale zmagałem się ze złożonymi zapytaniami, aby znaleźć przykłady lub faktycznie zrozumieć składnię.
Mówię o zapytaniach takich jak to:
@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String> {
List<User> findByEmailOrLastName(String email, String lastName);
}
lub użycie zapytań opartych na JSON, które próbowałem metodą prób i błędów, ponieważ nie rozumiem właściwej składni. Nawet po przeczytaniu dokumentacji mongodb (niedziałający przykład z powodu złej składni).
@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);
}
Po przeczytaniu całej dokumentacji wydaje się, że mongoTemplate
jest ona wtedy znacznie lepiej udokumentowana MongoRepository
. Mam na myśli następującą dokumentację:
http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/
Czy możesz mi powiedzieć, co jest wygodniejsze i wydajniejsze w użyciu? mongoTemplate
czy MongoRepository
? Czy oboje są tak samo dojrzali, czy jednemu z nich brakuje więcej funkcji niż drugiemu?