web-dev-qa-db-fra.com

comment afficher une requête lors de l'utilisation d'annotations de requête avec MongoRepository avec des données de printemps

J'utilise MongoRepository dans Spring Boot pour accéder à Mongo:

public interface MongoReadRepository extends MongoRepository<User, String> {
    @Query(value = "{$where: 'this.name == ?0'}", count = true)
    public Long countName(String name);
}

et cela pourrait fonctionner, mais je me demande de savoir exactement quelle requête il accède à mongo

comment faire ça?

j'essaye d'ajouter quelques config aux propriétés comme ci-dessous:

logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG
logging.level.org.springframework.data.mongodb.repository.Query=DEBUG

et ne fonctionnent pas.

quelqu'un pourrait-il aider?

26
genchilu

J'ajoute la ligne (ci-dessous) dans application.properties et fonctionne très bien:

logging.level.org.springframework.data.mongodb.core.MongoTemplate=DEBUG

pour la requête:

@Query("{$and: [{'$or' : [{ 'name': {$regex : ?0, $options: 'i'}}, {'description': {$regex : ?1, $options: 'i'}}]}, { 'deleted' : ?2 }]}")

obtenir ce journal:

2016-09-27 10:53:26.245 DEBUG 13604 --- [nio-9090-exec-3] o.s.data.mongodb.core.MongoTemplate      : find using query: { "$and" : [ { "$or" : [ { "name" : { "$regex" : "c" , "$options" : "i"}} , { "description" : { "$regex" : "c" , "$options" : "i"}}]} , { "deleted" : false}]} fields: null for class: class com.habber.domain.Entity in collection: entities
55
Luis Costa

En outre, vous pouvez utiliser un fichier de configuration yml, le placer dans votre fichier application.yml.

logging:
  level:
    org.springframework.data.mongodb.core.MongoTemplate: DEBUG
10
Chaojun Zhong

Pour ReactiveMongo, ajoutez cette propriété à votre fichier .properties

logging.level.org.springframework.data.mongodb.core.ReactiveMongoTemplate=DEBUG
5
Wilder Valera