我有一个帐户的文件看起来像这样:MongoDB的(这种或那种或其他),但(我)
_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 => array($ nin)' – Sammaye
谢谢,我稍微修改了它,但仍然希望有人能够权衡显示这个查询是如何写入的。 –
基本上:$和($或(email&altemail.email),$ ne(_id))? – WiredPrairie