MongoDB сортирует результаты по количеству полей

Я использую robomongo для запроса коллекции mongodb с миллионами объектов.

Я хочу увидеть, какие объекты имеют наибольшее количество полей, и поэтому хочу, чтобы результаты были упорядочены по количеству полей в каждом объекте.

Так, например, я хочу, чтобы объекты с наибольшим количеством полей появлялись в начале результатов поиска.


person Roko    schedule 27.02.2015    source источник


Ответы (1)


Невозможно отсортировать результаты по количеству полей, если вы явно не сохраните это количество как поле в документах. MongoDB не знает количество полей в документе, пока документ не будет получен.

Если количество полей на самом деле является значимым значением для вашего варианта использования, вам придется написать собственный скрипт для его расчета (и решить, заботитесь ли вы только о полях верхнего уровня или действительно хотите рекурсивно использовать встроенные документы/массивы).

person Stennie    schedule 27.02.2015