mongodb mongoTemplate erhält ein bestimmtes Feld mit einigen Kriterien

8

Meine MongoDB-json-Struktur ist

%Vor%

Ich muss eine Sammlung von Datensätzen erhalten, deren Quelle öffentlich ist. Ich habe diese Abfrage versucht, und es hat nicht funktioniert:

%Vor%

Können Sie mir bitte helfen?

    
Raj 26.07.2015, 09:57
quelle

1 Antwort

9

Zum einen gibt die .getCollection() -Methode das grundlegende Driver-Sammlungsobjekt wie folgt zurück:

%Vor%

Der Typ des Abfrageobjekts unterscheidet sich möglicherweise von dem, was Sie verwenden, aber es gibt auch noch andere Dinge. Nämlich, dass .distinct() nur die "distint" -Werte des gesuchten Schlüssels zurückgibt und andere Felder des Dokuments nicht zurückgibt. Sie könnten also tun:

%Vor%

Aber das wird nur "Beispiel" als ein einzelnes Element in der Liste zum Beispiel zurückgeben.

Wenn Sie die "Felder" aus einer bestimmten Menge haben möchten, verwenden Sie stattdessen die Methode .aggregate() . Mit den "ersten" Vorkommen der anderen Feldwerte für den unterschiedlichen Schlüssel:

%Vor%

Oder die tatsächlichen "distinct" Werte mehrerer Felder, indem Sie sie alle zum Gruppierungsschlüssel machen:

%Vor%

Es gibt auch eine direkte Methode .aggregate() auf mongoTemplate-Instanzen, die eine Reihe von Hilfsmethoden zum Erstellen von Pipelines hat. Aber das sollte dich zumindest in die richtige Richtung weisen.

    
Blakes Seven 26.07.2015, 10:32
quelle

Tags und Links