2017-06-09 2 views
0

Ich habe in meiner Mongodb-Sammlung mit Nachrichten.Spring Boot MongoDB finde Datensätze nach Wert in der Liste

{ 
     "_id" : ObjectId("593a97cdb17cc6535522d16a"), 
     "title" : "Title", 
     "text" : "Test", 
     "data" : "9.06.2017, 14:39:33", 
     "author" : "Admin", 
     "categoryList" : [ 
      { 
       "_id" : null, 
       "text" : "category1" 
      }, 
      { 
       "_id" : null, 
       "text" : "category2" 
      }, 
      { 
       "_id" : null, 
       "text" : "category3" 
      } 
     ] 
    } 

Jeder Nachrichteneintrag hat eine Liste von Kategorien. Ich würde gerne alle Nachrichten finden, die category1 in categoryList Ich versuche, das durch newsRepository.findByCategoryList("category1"); aber nicht funktioniert.

Wie geht das?

Antwort

1

Mit Ihrer Methode aktuellen Repository die erzeugte Abfrage

{ "categoryList" : "category1"} 

Was Sie brauchen

{ "categoryList.text" : "category1"} 

ist Sie die Abfrage auf zwei Arten erstellen können.

Repository

findByCategoryListText(String category) 

Verwendung Abfragemethode

@Query("{'categoryList.text': ?0}") 
findByCategoryList(String category) 
Verwandte Themen