2017-10-25 6 views
0

Ich möchte Informationen speichern, verfolgen wie unten:Spring Data MongoDB - individuelle Abfrage

{ 
    "timestamp": 1394343677415, 
    "info": { 
     "method": "GET", 
     "path": "/trace", 
     "headers": { 
      "request": { 
       "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", 
       "Connection": "keep-alive", 
       "Accept-Encoding": "gzip, deflate", 
       "User-Agent": "Mozilla/5.0 Gecko/Firefox", 
       "Accept-Language": "en-US,en;q=0.5", 
       "Cookie": "_ga=GA1.1.827067509.1390890128; ..." 
       "Authorization": "Basic ...", 
       "Host": "localhost:8080" 
      }, 
      "response": { 
       "Strict-Transport-Security": "max-age=31536000 ; includeSubDomains", 
       "X-Application-Context": "application:8080", 
       "Content-Type": "application/json;charset=UTF-8", 
       "status": "200" 
      } 
     } 
    } 

Meine @Document Einheit ist, die sich HashMap.

Jetzt muss ich benutzerdefinierte Abfrage für die Seitenumbruch schreiben.

In Mongo Client-Shell würde ich es schreiben:

db.traceInfo.find({"headers.response.status": "404"}).limit(n); 

und es funktioniert, aber ich weiß nicht, wie diese Abfrage als @Query im Frühjahr MongoRepository zu schreiben? Wie kann ich das machen?

Antwort

1

Das ist total einfach, aber Schlüsselwort limit, nicht durch Feder-data-mongodb unterstützt, überprüfen Sie die Referenz hier aus: https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#repository-query-keywords

Mögliche Lösung:

@Query({"headers.response.status": "?1"}) 
List<T> findByGivenStatus(int status); 
+0

Danke, so wie kann ich Seite bekommen wo "headers.response.status": "500"? Würde es funktionieren: @Query ({"headers.response.status": "? 2"}) Page findByGivenStatus (Ausklappbare Auslagerungsdatei, Int-Status); – user

+0

@Benutzer nur testen, es würde funktionieren – Jaiwo99

Verwandte Themen