Запрос на Mongoid Hash Field - PullRequest
       4

Запрос на Mongoid Hash Field

26 голосов
/ 22 ноября 2010

Я хочу запросить в поле Hash для класса Mongoid.Я не уверен, как я могу сделать это с условиями?

Вот пример:

class Person
  include Mongoid::Document

  field :things, :type => Hash
end

Итак, допустим, у меня есть это:

p = Person.new
p.things = {}
p.things[:tv] = "Samsung"

Я хочу запросить первого человека с телевизором, который является Samsung ...

People.first(:conditions => ?????

Заранее спасибо.

1 Ответ

45 голосов
/ 22 ноября 2010
Person.where('things.tv' => 'Samsung').first

Это то, где Mongoid и MongoDB действительно сияют. Методы Mongoid Criteria (Person.where, Person.any_of, Person.excludes и т. Д.) Обеспечат вам гораздо большую гибкость, чем средства поиска в стиле ActiveRecord (передача хеша :conditions в Person.find, Person.first и т. Д.)

На сайте Mongoid есть отличная документация по использованию Criteria:

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

...