Mongo 聚合匹配多个值

ava*_*hos 5 mongodb mongodb-query aggregation-framework

我有以下文件

  {
       name: 'John',
       Address :'street 1 '
   },
   {
       name: 'Jane',
       Address :'street 2 '
   },
   {
       name: 'Smith',
       Address :'street 3 '
   }
Run Code Online (Sandbox Code Playgroud)

我想在 mongo 聚合管道中搜索具有不同值的多个文档。

这意味着name =('John','Smith')。我期待的结果是

{
   name: 'John',
   Address :'street 1 '
},
{
   name: 'Smith',
   Address :'street 3 '
}
Run Code Online (Sandbox Code Playgroud)

我的代码是

db.articles.aggregate($match: { $or: [{ name: 'John' }, { name: 'Smith' }]);
Run Code Online (Sandbox Code Playgroud)

这是一个空值。是否可以这样获取文档?

小智 8

您需要使用运算符 $in

$in 运算符选择字段 值等于指定数组中的任何值的文档

[{
    $match: {
        name: {
            $in: ['John', 'Smith']
        }
    }
}]
Run Code Online (Sandbox Code Playgroud)

参考:MongoDB 文档:$in