sql >> Database teknologi >  >> NoSQL >> MongoDB

få distinkte værdier med sorterede data

Du kan bruge aggregeringsrammen til at gruppere efter det element, du ønsker skal være distinkt (gruppe gør det distinkt). Så hvis du ønsker at sortere på score, så få forskellige nøgler, kan du gøre følgende - sorter efter score, grupper efter nøgle og tilføje score som arrays af elementer (allerede sorteret):

db.test.aggregate([
    { $sort : { score : -1 } },
    { $group : {_id : "$key", scores : { $push : "$score" } } }
])

Dette vil resultere i særskilte nøgler sammen med en række scores, som er de scores, der er indeholdt i dokumenterne med duplikerede nøgler. Jeg er ikke sikker på, at det er præcis det, du leder efter, og jeg ved, at dette er et gammelt spørgsmål, men jeg tænkte, at dette kunne hjælpe en anden til at se på det i fremtiden - som en alternativ måde at gøre dette på.



  1. dræbe zombie døde regionsservere

  2. java.lang.IncompatibleClassChangeError:Implementering af klasse Mongo

  3. Mongoose/Mongodb:Ekskluder felter fra udfyldte forespørgselsdata

  4. MongoDB -- Indstilling af en betinget erklæring i .find()