MongoDB聚合框架匹配或

MongoDB聚合框架匹配或,mongodb,aggregation-framework,Mongodb,Aggregation Framework,可以在$match中执行OR吗 我的意思是这样的: db.articles.aggregate( { $or: [ $match : { author : "dave" }, $match : { author : "john" }] } ); 与此类似,由于$match运算符只接受通常放入find()函数中的内容,因此在这种特殊情况下,$or-ing同一字段中,$In运算符将是更好的选择,还因为它增加了可读性: $match: { 'author': { $in: [

可以在$match中执行OR吗

我的意思是这样的:

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

与此类似,由于
$match
运算符只接受通常放入
find()
函数中的内容,因此在这种特殊情况下,
$or
-ing同一字段中,
$In
运算符将是更好的选择,还因为它增加了可读性:

$match: { 
  'author': { 
    $in: ['dave','john'] 
  } 
}
根据MongoDB文档,在这种情况下建议使用
$in

$或与$in相比

使用$or时,表示相等 检查同一字段的值,改用$in运算符 $or运算符的


根据Mongo docs的说法,这是一种“最有效”的平等比较方法,例如您的示例。“看,$in是我相信$or不是聚合运算符的方式”。@保尔·夏皮罗:我希望你没有因为这个而投反对票。所有人请考虑在投票前评论原因,这对每个人都有帮助。这是你的答案不正确的参考资料,正如你所看到的,我已经解释了答案不正确的地方和原因。
$match: { 
  'author': { 
    $in: ['dave','john'] 
  } 
}