MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Agregar documentos onde os objetos na matriz correspondem a várias condições


Você pode usar a consulta abaixo com $elemMatch para corresponder aos dois valores da matriz.

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

Além disso, você pode usar $all operador se você não quiser fazer referência ao índice da matriz.
db.collection_name.aggregate({
  "$match": {
    "item": {
      "$elemMatch": {
        "property": {
          "$all": [
            "attr1",
            /^\+/
          ]
        }
      }
    }
  }
});