sql >> Databáze >  >> NoSQL >> MongoDB

seřadit podle délky řetězce v Mongodb/pymongo

Je spousta věcí (a základní API), které bych osobně miloval vidět v agregačním rámci, jako je:

Matematické funkce

  • protokolovat (jako v logaritmu)
  • strop
  • podlaha

Pole

  • součet

Řetězec

  • délka

Abychom jmenovali alespoň některé.

A to bez uchylování se k obskurnímu použití $mod operátor nebo jiné prostředky v takových případech jako "strop" a "podlaha". Ale to jsem odbočil.

Vaše "délka řetězce" spadá do této kategorie. Nastolit o tom problém JIRA. Ale zatím můžete použít mapReduce a stávající funkci JavaScript:

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

Takže i když to ve skutečnosti má funky styl „mapReduce“ vrácení přeformátovaného dokumentu a samozřejmě se vším, co odpovídá stejné délce v poli, to, co dělá, je využít povahu „mapReduce“ (ne jen omezené na MongoDB ) a umožňuje seřadit emitovanou hodnotu "klíč" v odpovědi.



  1. MongoDB Schema Design – Mnoho malých dokumentů nebo méně velkých dokumentů?

  2. Pokud použijeme MongoDB jako naši hlavní databázi, mám k implementaci vztahů mezi entitami použít samostatnou grafovou databázi?

  3. Jak určit dobu provádění skriptu Lua v Redis?

  4. nastavit klíč vypršení platnosti v konkrétní čas při použití mezipaměti Spring s Redis