Запрос на монгодском хэш-поле
Я хочу запросить поле 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
Person.where('things.tv' => 'Samsung').first
Именно здесь действительно блестят монгольские и 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