sql >> Databáze >  >> NoSQL >> MongoDB

Podmíněně zahrnout pole (_id nebo jiné) do agregace projektu mongodb?

V současné době neexistuje způsob, jak to udělat ve fázi $project, ale můžete použít fázi $redact k podmíněnému odstranění pole (tj. nastavíte hodnotu na 0 jako ve svém příkladu.

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


  1. Spring - mongodb - aggregation - Je vyžadována volba 'kurzor'

  2. Sada dvou uzlů MongoDB replik bez arbitra

  3. nasazení redis na heroku, který se nemůže připojit

  4. Před a po odstranění Middleware se nespouští