Вызов find (: all) из объекта экземпляра в Mongoid - PullRequest
0 голосов
/ 22 ноября 2010

Скажите, у меня есть следующий объект:

{ "text" : "oa3", "topic_ids" : [ ObjectId("4cea00efd8030a35eb000004") ]}

У меня есть объект, представляющий это, называемый "а"

a.topics.find(:all).count  #this returns 0

Я чувствую, что делаю это неправильно

Как получить итератор для тем в этом конкретном объекте?

1 Ответ

4 голосов
/ 22 ноября 2010
# 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

Ключ в том, чтобы использовать критерии Mongoid (Model.where или Model.association.where) для выполнения запросов вместо искателей стилей ActiveRecord (Model.find).Искатели в стиле ActiveRecord действительно просто для удобства - настоящая мощь Mongoid заключается в критериях.

Больше информации на сайте Mongoid:

http://mongoid.org/docs/querying/

...