是否可以在$ match中进行“或”操作?
我的意思是这样的:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
是否可以在$ match中进行“或”操作?
我的意思是这样的:
db.articles.aggregate(
{ $or: [ $match : { author : "dave" }, $match : { author : "john" }] }
);
Answers:
在这种特殊情况下,你在哪里$or
-ing 同一领域中,$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