Призывая найти (: все) из экземпляра объекта в монгоиде

StackOverflow https://stackoverflow.com/questions/4243365

  •  27-09-2019
  •  | 
  •  

Вопрос

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

{ "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 действительно просто для удобства - реальная мощность моноида в критериях.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top