So zeigen Sie eine Abfrage an, während Sie Abfrageanmerkungen mit MongoRepository mit Federdaten verwenden

Lesezeit: 2 Minuten

Ich verwende MongoRepository im Spring Boot, um auf Mongo zuzugreifen:

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

und es könnte funktionieren, aber ich frage mich, wie genau es auf Mongo zugreift

wie geht das?

Ich versuche, einige Konfigurationen bei Eigenschaften wie unten hinzuzufügen:

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

und funktionieren nicht.

könnte jemand helfen?

Ich füge die Zeile (unten) in application.properties hinzu und funktioniert gut:

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

zur Abfrage:

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

erhalten Sie dieses Protokoll:

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

  • Stellen Sie sicher, dass Sie log4j importiert haben

    – Luis Costa

    27. September 2016 um 10:09 Uhr

  • Ich habe sogar log4j importiert und dieselbe Lösung ausprobiert, aber es funktioniert nicht für mich

    – Vishal A

    22. Februar 2018 um 15:51 Uhr

  • Entfernen Sie die .MongoTemplate. Es funktioniert als „logging.level.org.springframework.data.mongodb.core“.

    – Ryan_D

    2. Juli 2019 um 20:56 Uhr

lins Benutzeravatar
Lin

Sie können auch eine yml-Konfigurationsdatei verwenden und sie in Ihre Datei application.yml einfügen.

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

Fügen Sie für ReactiveMongo diese Eigenschaft zu Ihrer .properties-Datei hinzu

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

Dies ist eine späte Antwort, aber ich habe festgestellt, dass die richtige Antwort aufgrund der Frage noch nicht gegeben wurde.

Die von den Personen bereits gegebene Antwort kann für andere Szenarien gültig sein. Aber wenn Sie die verwenden MongoRepository dann wäre die richtige Konfiguration folgende:

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

Sie verwenden die Query in Ihrer Konfiguration statt query was falsch ist.

Wenn Sie die richtige Konfiguration hinzufügen, würde der Logger wie folgt aussehen:

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: {}

Ich denke, dass die vollständige Lösung laut @Wilder Valera und @Chaojun Zhong ist

Wenn Sie sich für MongoTemplate anmelden möchten, erhalten Sie die Antwort:

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

Wenn Sie sich für ReactiveMongoTemplate anmelden möchten, sollten Sie Folgendes verwenden:

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

1430950cookie-checkSo zeigen Sie eine Abfrage an, während Sie Abfrageanmerkungen mit MongoRepository mit Federdaten verwenden

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy