У меня есть документ счета, который выглядит следующим образом:MongoDB (это или что OR другой), но НЕ (я)
_id: ###
email: string
password: md5(string)
altemail: [{ email: string
verified: time},
{ email: string
verified: time},
{ ... }]
И я хотел бы проверить уникальный адрес электронной почты, прежде чем разрешить пользователю создать Счет. Однако я также хотел бы разрешить сохранение текущего пользователя _id.
Мой инстинкт использовать:
$db->users->find(array(
'$or' => array(array("email" => $email),
array("altemail.email" => $email))
'_id' => array('$nin' => array($myID))
));
Но это не работает для меня. Может кто-нибудь показать мне, как создать запрос примерно эквивалентный в MySQL:
SELECT *, count(_id) FROM users WHERE (email = $email OR altemail.email = $email) AND (_id != $myID);
Спасибо, ребята.
Ваш $ nin неверен для одного, он должен быть массивом 'field => ($ nin)' – Sammaye
Спасибо, я немного изменил его, но все же надеялся, что кто-то может взвесить, чтобы показать, как этот запрос должен быть написан. –
в основном: $ и ($ или (электронная почта и altemail.email), $ ne (_id))? – WiredPrairie