Há muitas coisas ( e API básica ) que eu pessoalmente adoraria para ver na estrutura de agregação, como:
Funções matemáticas
- log (como em logaritmo)
- teto
- piso
Matriz
- soma
Sequência
- comprimento
Só para citar alguns.
E isso sem recorrer a usos obscuros do
$mod
operador ou outro meio em casos como "teto" e "piso". Mas eu discordo. Seu "comprimento da string" se enquadra nessa categoria. Levante um problema do JIRA sobre isso. Mas por enquanto você pode usar mapReduce e a funcionalidade JavaScript existente:
db.collection.mapReduce(
function() {
emit( this.item.length, this.item );
},
function(key,values) {
return values;
},
{ "out": { "inline": 1 } }
)
Então, embora isso realmente tenha o estilo funky "mapReduce" de retornar um documento reformulado e, é claro, tudo correspondendo ao mesmo comprimento em uma matriz, o que ele faz é aproveitar a natureza de "mapReduce" (não apenas restrito para MongoDB ) e permite que o valor "chave" emitido seja classificado na resposta.