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

sorter efter strenglængde i Mongodb/pymongo

Der er mange ting (og grundlæggende API) jeg personligt ville elske at se i aggregeringsrammen, såsom:

Matematiske funktioner

  • log (som i logaritme)
  • loft
  • etage

Array

  • sum

String

  • længde

Bare for at nævne nogle få.

Og det er uden at ty til obskur brug af $mod operatør eller andre midler i sådanne tilfælde som "loft" og "gulv". Men jeg afviger.

Din "strenglængde" falder ind under denne kategori. Rejs et JIRA-spørgsmål om det. Men indtil videre kan du bruge mapReduce og den eksisterende JavaScript-funktionalitet:

db.collection.mapReduce(
    function() {
        emit( this.item.length, this.item );
    },
    function(key,values) {
        return values;
    },
    { "out": { "inline": 1 } }
)

Så selvom det faktisk har den "mapReduce" funky stil med at returnere et omformet dokument og med selvfølgelig alt, der matcher den samme længde i et array, hvad det gør, er at drage fordel af naturen af ​​"mapReduce" (ikke kun begrænset til MongoDB ) og tillader den udsendte "nøgle"-værdi at blive sorteret i svaret.



  1. Opret et 2dsphere Geospatial Index for sfæriske forespørgsler i MongoDB

  2. Masseoprettelse af nøgler i Redis - ServiceStack C#

  3. Hvad er den mest tidseffektive måde at serialisere/deserialisere en datatabel til/fra Redis?

  4. Redis er tom efter opstart, selvom der er en .rdb-fil