sql >> Databasteknik >  >> NoSQL >> MongoDB

mongodb-aggregation med $project för att villkorligt utesluta ett fält

Från och med mongoDB 3.6 kan du använda variabeln REMOVE för att utesluta fält villkorligt.

I just ditt fall bör projektstadiet se ut så här:

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


  1. MongoDB:upsert sub-dokument

  2. MongoDB $arrayElemAt

  3. MongoDB insertOne()

  4. Unikt index fungerar inte med Mongoose / MongoDB