# MongoDB - Abfrageergebnis in Array speichern



## Sweetmuffin98 (22. Jun 2019)

Hey,
ich programmiere Momentan an einer Schnittstelle für MongoDb mit Java.
Ich habe bereits eine Abfrage erstellt, und möchte diese in einem Array abspeichern um sie später absteigend sortieren zu können.
Mein Problem:
Ich bekomme mehrere Werte ausgegeben die alle im Index 0 meiner ArrayList gespeichert werden.
Möchte ich die ArrayListe jetzt sortieren, funktioniert die natürlich nicht.
Jemand eine Idee wie ich jeden Wert auf ein Index verteilen kann?
Hier mein Quellcode zur Verständlichkeit:

```
void bestHof(){
        // Datenbankabfrage des Kopfobjektes von Collection "pferdeCollection"
        for(Reiterhof r : db.pferdeCollection.find()) {
            //Variable um Abfrageergebnis zwischenspeichern zu können
            int gesSiege = 0;
            //Abfrage des Rumpfobjektes, spezieller: nach Gesamtsiege der Pferde des jeweiligen Reiterhofs
            for(Pferd p : r.getArrayList())
                //Gesamtsiege werden der Variablen zugeordnet
                gesSiege += p.getGesamtsiege();
//            System.out.println("Der Hof mit der Nummer: " + r.getHofnummer() + " hat insgesamt: " + gesSiege + " Siege");
            
            ArrayList <Integer> sortiert = new  ArrayList <Integer>();
            //Hinzufügen der  Variablen zur ArrayListe
            sortiert.add(gesSiege);
            Collections.sort(sortiert);
            System.out.println(sortiert);
        }
}
```

Lasse ich mir nun Index 0 ausgeben bekomme ich folgende Werte aufgelistet:

```
21
9
12
0
6
15
6
```

Diese sollen jeweils einen eigenen Index bekommen.
Hat jemand eine Idee?
Vielen Dank im Vorraus!


----------



## mihe7 (22. Jun 2019)

Das funktioniert nicht, weil Du für jeden Reiterhof eine neue Liste anlegst, in diese Liste ein Element einfügst, dieses eine Element sortierst und ausgibst.


```
void bestHof(){
    ArrayList <Integer> sortiert = new  ArrayList <Integer>();
    for(Reiterhof r : db.pferdeCollection.find()) {
        int gesSiege = 0;
        for(Pferd p : r.getArrayList())  {
            gesSiege += p.getGesamtsiege();
        }
        sortiert.add(gesSiege);
    }
    Collections.sort(sortiert);
    System.out.println(sortiert);
}
```


----------



## Sweetmuffin98 (22. Jun 2019)

Vielen Dank @mihe7 , hat funktioniert sogar mit super Erklärung!


----------

