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

Includere condizionatamente un campo (_id o altro) nell'aggregazione del progetto mongodb?

Al momento non c'è un modo per farlo all'interno della fase $progetto, ma puoi usare la fase $redact per rimuovere il campo in modo condizionale (ad esempio, imposti il ​​valore su 0 come stai facendo nel tuo esempio.

db.collection.aggregate(
  ... matching and stuff ...
  {$project: { _id: { $ifNull: [ "$user_id", 0 ] } }},
  {$redact: {
  {$cond: {
    if: { $eq: [ "$user_id", 0 ] },
    then: '$$PRUNE',
    else: '$$DESCEND'
  }}
}