是否可以在 $match 中进行 OR?
我的意思是这样的:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
是否可以在 $match 中进行 OR?
我的意思是这样的:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
$match: { $or: [{ author: 'dave' }, { author: 'john' }] }
就像这样,因为$match
操作员只接受你通常会放入find()
函数的内容
在这种特殊情况下,当您$or
使用相同的字段时,$in
运算符将是更好的选择,也因为它增加了可读性:
$match: {
'author': {
$in: ['dave','john']
}
}
根据 MongoDB 文档,$in
在这种情况下建议使用:
$or 与 $in
将 $or 与对同一字段的值进行相等检查的 <expressions> 一起使用时,请使用 $in 运算符而不是 $or 运算符。
https://docs.mongodb.com/manual/reference/operator/query/or/#or-versus-in