MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

agregação mongodb com $project para excluir condicionalmente um campo


A partir do mongoDB 3.6, você pode usar a variável REMOVE para excluir campos condicionalmente.

No seu caso particular, o estágio do projeto deve ficar assim:
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' ] }
});