mongodb - 匹配数组中的多个条件
问题描述
我有以下内容:
offers: [
{user: 'jon', price: 200, selected: false},
{user: 'ted', price: 100, selected: true}
]
我正在尝试进行匹配,以获取用户被选中并选择为真的所有优惠对象。
我尝试了以下方法:
$match: {
"offers.user": "ted"
"offers.selected": true
}
但是,如果数组中有一个 ted 和一个 selected true 并且不需要在同一个对象内进行该组合,这将给我文档。
解决方案
您需要使用$elemMatch
查询运算符来匹配数组内的多个条件
{ "$match": {
"offers": {
"$elemMatch": {
"user": "ted"
"selected": true
}
}
}}