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

Van*_*ing 10 mongodb

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

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

{email:"mail1@domain.com"},
{email:"mail2@domain.com"},
.
.
.
{email:"mail1000@domain.com"}
Run Code Online (Sandbox Code Playgroud)

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

我觉得这很简单

db.users.find({email:["mail7@domain.com","mail117@domain.com", ... 99 entries ..., "mail 987@domain.com"]})
Run Code Online (Sandbox Code Playgroud)

但是我错了.

什么是最有效的方法呢?

Ana*_*lan 11

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

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