Я немного поработал, поскольку мне нужно было запросить размер массива и вернуть его, если он больше 0, но может быть любым из 1-3.
Вот мое решение:
db.test.find($or : [{$field : { $exists : true, $size : 1}},
{$field : { $exists : true, $size : 2}},
{$field : { $exists : true, $size : 3}}, ])
Это в основном возвращает документ, когда атрибут существует, и его размер равен 1, 2 или 3. Пользователь может добавить больше операторов и приращений, если они ищут определенный размер или в пределах диапазона.Я знаю, что это не идеально, но это сработало и было относительно быстрым.У меня было только 1-3 размера в моем атрибуте, поэтому это решение сработало.