Има много неща (и основен API), които аз лично бих обичал за да видите в рамката за агрегиране, като например:
Математически функции
- log (както в логаритъм)
- таван
- под
Масив
- сума
Стринг
- дължина
Само да назовем няколко.
И това е без да се прибягва до неясни употреби на $mod
оператор или други средства в такива случаи като "таван" и "под". Но аз се отклонявам.
Вашата "дължина на низа" попада в тази категория. Повдигнете проблем с JIRA за това. Но засега можете да използвате mapReduce и съществуващата функционалност на JavaScript:
db.collection.mapReduce(
function() {
emit( this.item.length, this.item );
},
function(key,values) {
return values;
},
{ "out": { "inline": 1 } }
)
Така че, докато това всъщност има фънки стил „mapReduce“ за връщане на повторно оформен документ и разбира се, че всичко съответства на същата дължина в масива, това, което прави, е да се възползва от естеството на „mapReduce“ (не само ограничено към MongoDB ) и позволява излъчената стойност на „ключ“ да бъде сортирана в отговора.