Queertazione mongoide per i genitori da bambini incorporati (usando due valori)
-
20-12-2019 - |
Domanda
Ho un modello di contatto, che ha modelli di posta elettronica incorporati
Sto cercando di interrogare un record di contatti, per trovare tutti i contatti che hanno un indirizzo email in cui "Email_type" corrisponde a una stringa e il flag "annullato" per quella email è falsa
Il mio colpo migliore finora è:
Contact.where({"emails.email_type" => 'Work','emails.unsubscribed' => false})
.
Ma questo trova contatti in cui qualsiasi indirizzo e-mail se di tipo 'lavoro' o qualsiasi indirizzo e-mail non è iscritto, questo significa che troppi contatti vengono restituiti
Quello che devo fare è trovare contatti in cui qualsiasi indirizzo email se di tipo 'lavoro' e indirizzo email è anche annullato ... C'è un modo per farlo?
Soluzione
Risulta della sintassi è piuttosto semplice, se molto difficile da trovare ...
Contact.elem_match("emails" => { email_type: type, unsubscribed: false })
.
elem_match da http://mongoid.org/en/origin/docs/selection.HTML