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

agregación mongodb con $ proyecto para excluir condicionalmente un campo

A partir de mongoDB 3.6, puede usar la variable REMOVE para excluir campos condicionalmente.

En su caso particular, la etapa del proyecto debería verse así:

aggregate.project({
    _id: 1,
    last: { $cond: [ { $eq : [ '$_id', 'undo' ] }, '$date', '$$REMOVE' ] },
    user: { $cond: [ { $eq : [ '$_id', 'undo' ] }, '$user', '$$REMOVE' ] },
    app: { $cond: [ { $eq : [ '$_id', 'undo' ] }, '$app', '$$REMOVE' ] }
});