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

jak se vyhnout $push-ing null v rámci mongo agregace

Trochu pozdě na párty, ale...

Chtěl jsem udělat to samé a zjistil jsem, že toho mohu dosáhnout výrazem jako je tento:

  // Pushes events only if they have the value 'A'
  "events": {
    "$push": {
      "$cond": [
        {
          "$eq": [
            "$event",
            "A"
          ]
        },
        "A",
        "$noval"
      ]
    }
  }

Myšlenka je taková, že když to uděláte

{ "$push": "$event" } 

pak se zdá, že vkládá pouze nenulové hodnoty.

Takže jsem vytvořil sloupec, který neexistuje, $noval, který má být vrácen jako nepravdivá podmínka mého $cond.

Zdá se, že to funguje. Nejsem si jistý, jestli je to nestandardní a tudíž náchylné k rozbití jednoho dne, ale..



  1. MongoDB $in Query Operator

  2. Jak aktualizovat hluboce vnořené pole pomocí C# MongoDB.Driver?

  3. Jak používat db reference s reaktivními Spring Data MongoDB?

  4. Mongodb aktualizuje všechny dokumenty s jedinečným ID