sql >> Database >  >> NoSQL >> MongoDB

Documenten aggregeren waarbij objecten in array aan meerdere voorwaarden voldoen

U kunt de onderstaande query gebruiken met $elemMatch om met beide waarden van de array overeen te komen.

Iets als

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

U kunt ook $all gebruiken operator als u niet wilt verwijzen naar de array-index.

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



  1. Kun je een sleutel specificeren voor $addToSet in Mongo?

  2. Waarom tonen verschillende queryplannen van MongoDB verschillende nReturned-waarde?

  3. MongoDB vind waar sleutel gelijk is aan string uit array

  4. Verplaats object atomair op ID van de ene array naar de andere in hetzelfde document