MongoDB: поиск по нескольким ключам на встраиваемых документах - PullRequest
0 голосов
/ 09 марта 2012

У меня есть документ перевода, встраивающий много документов локали перевода:

class Translation
  include Mongoid::Document

  field :key, :type => String
  embeds_many :locales, :class_name => 'TranslationLocale'
end

class TranslationLocale
  include Mongoid::Document

  embedded_in :translation

  field :code,  :type => String
  field :state, :type => Boolean, :default => false
  field :text,  :type => String
end

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

Translation.where('locales.code' => 'en', 'locales.state' => false).all

Проблема в том, что запрос будет искать документы перевода, встраивающие языковой стандарт с кодом = en и языковой стандарт с состоянием = false, но необязательно в том же поддокументе.

Любая помощь приветствуется, спасибо!

1 Ответ

1 голос
/ 09 марта 2012

Попробуйте это:

Translation.where(:locales.matches => {:code=> 'en', :state=> false}).all

Пример из здесь

...