MongoDB 聚合框架匹配 OR

是否可以在 $匹配中执行 OR 操作?

我的意思是这样的:

db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
90014 次浏览
$match: { $or: [{ author: 'dave' }, { author: 'john' }] }

像这样,因为 $match操作符只取通常放入 find()函数中的内容

在这种特殊情况下,如果你是 $or-ing 同一个地方$in操作符将是一个更好的选择,也因为它增加了可读性:

$match: {
'author': {
$in: ['dave','john']
}
}

According to the MongoDB docs, using $in is recommended in this case:

或者对抗

当使用 $或与 < 表达式 > 相等时 检查同一字段的值,改为使用 $in 运算符 $或操作符的。

Https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in