MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Aggrega i documenti in cui gli oggetti nell'array corrispondono a più condizioni

Puoi utilizzare la query seguente con $elemMatch per far corrispondere entrambi i valori dell'array.

Qualcosa come

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

Inoltre, puoi utilizzare $all operatore se non vuoi fare riferimento all'indice dell'array.

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