2015-10-10 13 views
5

Ich möchte meine Group -Modell durch die name der departure_country mit Mungose-paginate und NodeJS sortieren.mongoose-paginate sortiert nach Referenzdokument

Mein Gruppe-Schema:

var GroupSchema = new Schema({ 
     name: String, 
     flight_date: Date, 
     .... 
     departure_country: {type: Schema.ObjectId, ref: 'Country'}, 
     .... 
    }); 

Das Land-Schema:

var CountrySchema = new Schema({ 
    name: String, 
    code: String, 
}); 

Mit der sortBy -option von Mungo-Paginieren Sorten des Landes _ids und I don‘ Ich weiß, wie man es nach der name sortieren kann.

+0

Wie wenden Sie 'sortBy' an? –

+0

'sortBy ({departure_country: -1})' gerade jetzt – molerat

+0

Hast du versucht '{" departure_country.name ": -1}'? –

Antwort

0

Wie wäre es, wenn Sie den Ländercode zum _id des Country-Schemas machen?

dann departure_country: {type: String, ref: 'Country'}

Das könnte in der Tat ein besseres Design sein. Country-Schema s _id wäre klein und Ländercodes sollten keine Kollisionen haben. Auch in GroupSchema würden Sie weniger Speicherplatz verwenden, um den "Fremdschlüssel" departure_country zu speichern.

dann könnten Sie nach departure_country sortieren und es besteht die Möglichkeit, dass die Sortierung auch für den Ländernamen gelten würde.

+0

manchmal muss ich mit dem Namen anzeigen oder sogar sortieren das Land auch – molerat

+0

@molerat glaube nicht, dass es einen Weg gibt, das zu tun, da Sie bevölkern. Sie müssten das auf der nodejs-Seite tun. http://underscorejs.org hat dafür gute Funktionen. sortBy oder sogar groupBy könnte nützlich sein. – kio

+0

Wenn Sie 50 von 10000 Einträgen erhalten und nur diese sortieren, haben Sie nicht das gleiche Ergebnis wie beim Sortieren von 10000 und dann bei der Auswahl von 50. – molerat

Verwandte Themen