Mongodb 在数组中匹配多个条件
我有以下资料:Mongodb 在数组中匹配多个条件,mongodb,mongoose,Mongodb,Mongoose,我有以下资料: offers: [ {user: 'jon', price: 200, selected: false}, {user: 'ted', price: 100, selected: true} ] $match: { "offers.user": "ted" "offers.selected": true } 我试图做一个匹配,将得到所有提供的对象,其中用户是ted和选择是真的 我尝试了以下方法: off
offers: [
{user: 'jon', price: 200, selected: false},
{user: 'ted', price: 100, selected: true}
]
$match: {
"offers.user": "ted"
"offers.selected": true
}
我试图做一个匹配,将得到所有提供的对象,其中用户是ted和选择是真的
我尝试了以下方法:
offers: [
{user: 'jon', price: 200, selected: false},
{user: 'ted', price: 100, selected: true}
]
$match: {
"offers.user": "ted"
"offers.selected": true
}
但是,如果数组中存在ted和selected true,并且在同一对象中不需要该组合,则这将为我提供文档。您需要使用查询运算符来匹配数组中的多个条件
{ "$match": {
"offers": {
"$elemMatch": {
"user": "ted"
"selected": true
}
}
}}
您希望mongoose
elemMatch
功能适用于您的案例
query.elemMatch('comment', { author: 'autobot', votes: {$gte: 5}})
请参阅文档:Google search:show's the linked duplicate in the third results from the top(在使用$elemMatch
之前还有几篇文章,但更新的文章)和MongoDB文档,文档的这一部分也说了同样的话。我建议读那一节和整本书