MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

agrégation mongodb avec $project pour exclure conditionnellement un champ

À partir de mongoDB 3.6, vous pouvez utiliser la variable REMOVE pour exclure des champs de manière conditionnelle.

Dans votre cas particulier, l'étape du projet devrait ressembler à ceci :

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' ] }
});