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文档,文档的这一部分也说了同样的话。我建议读那一节和整本书