There is no easy way to do this with your existing schema. The reason
for this is that there is nothing in mongodb to find the size of your array
length. Yes, you have $size operator, but the way it works is just to find all
the arrays of a specific length.
So you can not sort your find query based on the length of the array.
The only reasonable way out is to add additional field to your schema which
will hold the length of the array (you will have something like "l_length :
3" in additional to your fields for every document). Good thing is that you
can do it easily by looking at this relevant answer and
after this you just need to make sure to increment or decrement this value
when you are modifying the array.
When you will add this field, you can easily sort it by that field and
moreover you can take advantage of indexes.