Вам нужно будет добавить поле со счетчиком количества иждивенцев и поддерживать его в актуальном состоянии с помощью обратного вызова.Что-то вроде:
class MyModel
include Mongoid::Document
references_many :things
field :thing_count, :type => Integer
before_update :set_thing_count
def set_thing_count
self.thing_count = self.things.count
end
end
Тогда ваша сортировка будет просто:
MyModel.asc(:thing_count)
Mongoid пока не предоставляет хороший механизм запросов для сортировки, но добавить денормализованное поле подсчета довольно простои, вероятно, лучше для производительности в любом случае.Надеюсь, это поможет!