Mongoid通过嵌入式子代查询父级(使用两个值)

时间:2014-04-11 01:08:16

标签: ruby-on-rails mongodb mongoid mongoid3 mongoid4

我有一个Contact模型,它嵌入了电子邮件模型

我正在尝试查询联系人记录,查找所有具有电子邮件地址的联系人,其中'email_type'与字符串匹配,并且该电子邮件的'unsubscribed'标志为false

到目前为止我的最佳成绩是:

Contact.where({"emails.email_type" => 'Work','emails.unsubscribed'  => false})

但是,如果输入“工作”或任何电子邮件地址的任何电子邮件地址已取消订阅,则会查找“联系人” - 这意味着会返回太多联系人

我需要做的是找到联系人,其中任何电子邮件地址,如果是“工作”和 电子邮件地址也取消订阅...是否有办法执行此操作?

1 个答案:

答案 0 :(得分:1)

结果语法非常简单,如果很难找到......

Contact.elem_match("emails" =>  { email_type: type, unsubscribed: false })
来自http://mongoid.org/en/origin/docs/selection.html

elem_match