Вопрос

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

Вот пример:

class Person
  include Mongoid::Document

  field :things, :type => Hash
end

Итак, скажем, что у меня есть это:

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

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

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

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

Это было полезно?

Решение

Person.where('things.tv' => 'Samsung').first

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

У сайта Монгоида есть большая документация о том, как использовать Criteria:

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

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