Я все еще получаю зависть MongoDB и Mongoid и ударил эту промашку.Как выбрать все записи, где связанная коллекция пуста с Mongoid
Допустим, у меня есть User
, что has_and_belongs_to_many
items
и, конечно, Item
что has_and_belongs_to_many
users
.
Хотелось бы иметь возможность подсчитывать пользователей с помощью любых предметов.
this question рекомендуется добавление scope
таким образом, я попытался добавить объем к User
таких как
scope :has_no_items, where(:items.empty?)
но User.count - User.has_no_items.count
возвращает 0
.
Я просмотрел .with_size
, но это касается полей Array.
Что такое правильный способ сделать это, кроме
count = 0
User.each { |u| count += 1 unless u.items.empty? }
, который работает, но это, кажется, не очень элегантно.
Как это сделать эффективно?
Очень красивый и приятный подробный ответ; Благодарю. –