mongodb - 检查字段是否是众多值中的一个

时间:2014-04-17 15:54:26

标签: mongodb

如果字段值等于数组中的至少一个值,是否有一种查询文档的有效方法?

例如,当我有以下文件时:

{email:"mail1@domain.com"},
{email:"mail2@domain.com"},
.
.
.
{email:"mail1000@domain.com"}

并已将电子邮件字段编入索引,我想获取所有文档的ID,其电子邮件字段的值等于" mail7@domain.com",&#34 ; mail117@domain.com"或100个其他完全不相关的电子邮件地址。有可能吗?

我认为它会像

一样简单
db.users.find({email:["mail7@domain.com","mail117@domain.com", ... 99 entries ..., "mail 987@domain.com"]})

但我错了。

最有效的方法是什么?

1 个答案:

答案 0 :(得分:9)

您可以使用$in运算符匹配数组中的任何值:

db.users.find(
    {email : {$in : ["mail7@domain.com", "mail117@domain.com", "mail 987@domain.com"]}}
)