sql >> Database >  >> NoSQL >> MongoDB

sorteer op stringlengte in Mongodb/pymongo

Er zijn veel dingen (en basis-API) waar ik persoonlijk van zou houden te zien in het aggregatieraamwerk, zoals:

Wiskundige functies

  • log (zoals in logaritme)
  • plafond
  • vloer

Array

  • som

String

  • lengte

Om er maar een paar te noemen.

En dat is zonder toevlucht te nemen tot obscuur gebruik van de $mod operator of andere middelen in gevallen zoals "plafond" en "vloer". Maar ik dwaal af.

Uw "stringlengte" valt in deze categorie. Maak er een JIRA-probleem over. Maar voor nu kun je mapReduce en de bestaande JavaScript-functionaliteit gebruiken:

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

Dus hoewel dat eigenlijk de funky stijl "mapReduce" heeft van het retourneren van een opnieuw gevormd document en met natuurlijk alles met dezelfde lengte in een array, wat het doet is profiteren van de aard van "mapReduce" (niet alleen beperkt naar MongoDB ) en staat toe dat de verzonden "sleutel" -waarde in het antwoord wordt gesorteerd.



  1. Redis Object Cache gebruiken om uw WordPress-installatie te versnellen

  2. is er een manier om de cliënt IP in redis te krijgen?

  3. Hoe Redis Hashes te gebruiken

  4. Versleuteling gebruiken om uw MongoDB-gegevens te beschermen