cómo mostrar la consulta al usar anotaciones de consulta con MongoRepository con datos de primavera

2 minutos de lectura

Estoy usando MongoRepository en Spring Boot para acceder a Mongo:

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

y podría funcionar, pero me pregunto cuál es la consulta exacta para acceder a mongo

¿como hacer eso?

Intento agregar alguna configuración en propiedades como las siguientes:

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

y no trabajo

alguien podria ayudar?

Agrego la línea (abajo) en application.properties y funciona bien:

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

para consulta:

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

obtener este registro:

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

  • asegúrese de haber importado log4j

    – Luis Costa

    27 de septiembre de 2016 a las 10:09

  • Incluso importé log4j y probé la misma solución, pero no me funciona

    – Vishal A

    22 de febrero de 2018 a las 15:51

  • elimine .MongoTemplate. Funciona como logging.level.org.springframework.data.mongodb.core

    – Ryan_D

    2 de julio de 2019 a las 20:56

avatar de usuario de lin
Lin

Además, puede usar un archivo de configuración yml, ponerlo en su archivo application.yml.

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

Para ReactiveMongo agregue esta propiedad a su archivo .properties

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

Esta es una respuesta tardía, pero encontré que aún no se ha dado la respuesta correcta en función de la pregunta.

La respuesta ya dada por la gente puede ser válida para otros escenarios. Pero, si está utilizando el MongoRepository entonces la configuración correcta sería la siguiente:

logging.level.org.springframework.data.mongodb.repository.query= debug

estas usando el Query en su configuración en lugar de query Cuál está mal.

Cuando agrega la configuración correcta, el registrador sería como:

25-06-2020 17:58:43.301 [http-nio-9001-exec-10] DEBUG o.s.d.m.r.query.MongoQueryCreator.complete(162) - Created query Query: { "customer.id" : 2}, Fields: {}, Sort: {}

Creo que la solución completa está de acuerdo con @Wilder Valera y @Chaojun Zhong

Cuando desee iniciar sesión en MongoTemplate, la respuesta:

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

Cuando desee iniciar sesión en ReactiveMongoTemplate, debe usar:

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

¿Ha sido útil esta solución?