Призывая найти (: все) из экземпляра объекта в монгоиде
Вопрос
Скажем, у меня есть следующий объект:
{ "text" : "oa3", "topic_ids" : [ ObjectId("4cea00efd8030a35eb000004") ]}
У меня есть объект, представляющий это называется «A»
a.topics.find(:all).count #this returns 0
Я чувствую, что я делаю это неправильно.
Как мне получить итератор для темы в этом конкретном объекте?
Решение
# get the number of topics
a.topics.count
# same but faster
a.topic_ids.count
# get an array of the topics
a.topics.entries
# do a query on the topics
a.topics.where(:title => 'Movies').entries
Ключ состоит в том, чтобы использовать критерии монгоида (Model.where
или Model.association.where
) делать запросы вместо FivereCerecord Finders (Model.find
). Искатели Activerecord-Style действительно просто для удобства - реальная мощность моноида в критериях.
Больше информации на сайте Монгоида:
Не связан с StackOverflow