MongoMapper to Mongoid: Как искать внутри массива? - PullRequest
0 голосов
/ 24 декабря 2011

«Я» здесь означает модель контакта. Этот запрос найдет все выполненные задачи для контакта. Модель задачи имеет поле / ключ: assign_contacts типа Array. Таким образом, запрос выполняется в массиве.

def assigned_tasks_completed
  self.company.tasks.all(:assigned_contacts => self.id.to_s, :completed => true)
end

Как это сделать в Mongoid?

Еще один вопрос: В Mongoid эквивалентно @ contact.set (: a -> a,: b -> b,: c -> c) - update_attributes!

Но есть и метод, установленный в Mongoid. В чем разница между set & update_attributes! в монгоиде?

1 Ответ

0 голосов
/ 24 декабря 2011

Полагаю, ваши задачи - это отдельный документ.Таким образом, вы можете просто заменить all на where, это будет работать

def assigned_tasks_completed
  self.company.tasks.where(:assigned_contacts => self.id.to_s, :completed => true)
end

По вашему другому вопросу

Оба mongoid установить & обновитьатрибуты используются внутри mongodb $ set .Но разница в том, что mongoid set принимает только одно обновление поля, update_attributes принимает несколько.

...