sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Incluir condicionalmente un campo (_id u otro) en la agregación del proyecto mongodb?

Actualmente no hay una manera de hacer esto dentro de la etapa $project, pero puede usar la etapa $redact para eliminar el campo de forma condicional (es decir, establece el valor en 0 como lo está haciendo en su ejemplo.

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