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

come evitare $ push-ing null nel framework di aggregazione mongo

Un po' in ritardo per la festa, ma...

Volevo fare la stessa cosa e ho scoperto che potevo realizzarla con un'espressione come questa:

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

Il pensiero qui è che quando lo fai

{ "$push": "$event" } 

quindi sembra spingere solo valori non nulli.

Quindi ho creato una colonna che non esiste, $noval, da restituire come condizione falsa del mio $cond.

Sembra funzionare. Non sono sicuro che sia fuori standard e quindi suscettibile di rompersi un giorno ma..