埋め込みドキュメントの参照
Mongoidのドキュメントに微妙に書いてないのでメモ。
class Person include Mongoid::Document embeds_many :phones end class Phone include Mongoid::Document field :number embedded_in :person, :inverse_of => :phones end
となっているときに、ある電話番号の電話を所有するような人物を探す方法はどうすればいいだろう。
原点に立ち戻ってMongoDBの"dot notation"を使って以下のようなクエリでさがすことができる。
Person.where("phones.number" => "03-XXXX-XXXX")
Mongoidのドキュメントだと、埋め込みドキュメントへのインデックス作成のところで少し出てくるけど、肝心のクエリのところに書いてないから少し戸惑ってました。
なにはともあれ、解決。