MongoDB聚合框架匹配或
可以在$match中执行OR吗 我的意思是这样的: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: [
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']
}
}