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

aggregazione mongodb con $project per escludere condizionalmente un campo

A partire da mongoDB 3.6, puoi utilizzare la variabile REMOVE per escludere i campi in modo condizionale.

Nel tuo caso particolare, la fase del progetto dovrebbe assomigliare a questa:

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