sql >> Databasteknik >  >> NoSQL >> MongoDB

Villkorligt inkludera ett fält (_id eller annat) i mongodb-projektaggregering?

Det finns för närvarande inget sätt att göra detta inom $project-stadiet, men du kan använda $redact-stadiet för att ta bort fältet villkorligt (dvs. du ställer in värdet till 0 som du gör i ditt exempel.

db.collection.aggregate(
  ... matching and stuff ...
  {$project: { _id: { $ifNull: [ "$user_id", 0 ] } }},
  {$redact: {
  {$cond: {
    if: { $eq: [ "$user_id", 0 ] },
    then: '$$PRUNE',
    else: '$$DESCEND'
  }}
}


  1. mongo aggregeringsfråga med mgo-drivrutinen

  2. Designmönster för dataåtkomstskikt

  3. MongoDB $isoDayOfWeek

  4. Postgres 9.4 jsonb frågar grundläggande operatörer