sql >> Databáze >  >> NoSQL >> MongoDB

Agregovat dokumenty, kde objekty v poli odpovídají více podmínkám

Níže uvedený dotaz můžete použít s $elemMatch aby odpovídaly oběma hodnotám pole.

Něco jako

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

Můžete také použít $all Pokud nechcete odkazovat na index pole.

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



  1. Chybová zpráva z operace MongoDB `disneys.insertOne()` ukládání do vyrovnávací paměti vypršel po 10 000 ms

  2. Jak udělat vlastní mapování pomocí mongo konektoru s elasticsearch

  3. Vytvoření mongo pohledu, který závisí na aktuálním čase

  4. jak získat návratovou hodnotu findAndModify func v MongoDB s mongoose?