MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Agréger des documents où les objets du tableau correspondent à plusieurs conditions

Vous pouvez utiliser la requête ci-dessous avec $elemMatch pour faire correspondre les deux valeurs du tableau.

Quelque chose comme

db.collection_name.aggregate({
  "$match": {
    "item": {
      "$elemMatch": {
        "property.0": "attr1",
        "property.1": /^\+/
      }
    }
  }
});

Vous pouvez également utiliser $all opérateur si vous ne souhaitez pas référencer l'index du tableau.

db.collection_name.aggregate({
  "$match": {
    "item": {
      "$elemMatch": {
        "property": {
          "$all": [
            "attr1",
            /^\+/
          ]
        }
      }
    }
  }
});