2017-04-23 4 views
0

Dies funktioniert nicht, noch 100 Variationen.mongodb ~ sortierte eindeutige Liste/hat distinct sort()?

db.getCollection('countryCodesAndSubCodes') 
.distinct('Cn', {enabled: true}) 
.sort({ Cn: 1 }); 

Typ Fehler ({Cn: 1}) ist keine Funktion

aber dies tut:

db.getCollection('countryCodesAndSubCodes').distinct('Cn', {enabled: true}); 

und auch dies:

db.getCollection('countryCodesAndSubCodes').find({}).sort({ Cn: 1 }); 

Also, wie sortieren Sie ein distinct?

Antwort

2

db.getCollection('countryCodesAndSubCodes').distinct('Cn', {enabled: true}) gibt ein einfaches altes Javascript-Array zurück (unter der Annahme eines String-Arrays, aber das spielt keine Rolle).

es nennen sortieren nur sort()

Oder genauer gesagt:

db.getCollection('countryCodesAndSubCodes').distinct('Cn', {enabled: true}).sort()

Während db.getCollection('countryCodesAndSubCodes').find({}).sort({ Cn: 1 }); hat eine Cursor Art (im Gegensatz zu der Array Art entgegengesetzt).

Für einen Cursor Art benötigen Sie einen Sortierschlüssel und Richtung { Cn: 1 }

+0

so finden, die auch eine Ebene alt gibt JavaScript-Array etwas anders mit Art tut. Ich habe auch versucht '.sort (function (a, b) {return a.Cn Steve

+1

'find()' gibt einen Cursor zurück, kein Array. Sie können 'toArray()' darauf aufrufen, um es in ein Array umzuwandeln –

Verwandte Themen