Ho bisogno di scrivere un'applicazione con la quale posso fare query complesse usando spring-data e mongodb. Ho iniziato a utilizzare MongoRepository ma ho lottato con query complesse per trovare esempi o per comprendere effettivamente la sintassi.
Sto parlando di query come questa:
@Repository
public interface UserRepositoryInterface extends MongoRepository<User, String> {
List<User> findByEmailOrLastName(String email, String lastName);
}
o l'uso di query basate su JSON che ho provato per tentativi ed errori perché non ho la sintassi corretta. Anche dopo aver letto la documentazione di mongodb (esempio non funzionante a causa di una sintassi errata).
@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);
}
Dopo aver letto tutta la documentazione, sembra che mongoTemplate
sia molto meglio documentata allora MongoRepository
. Mi riferisco alla seguente documentazione:
http://static.springsource.org/spring-data/data-mongodb/docs/current/reference/html/
Puoi dirmi cosa è più comodo e potente da usare? mongoTemplate
o MongoRepository
? Sono entrambi maturi o uno di loro manca di più caratteristiche dell'altro?