MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Условно включване на поле (_id или друго) в агрегирането на проекти на mongodb?

Понастоящем няма начин да направите това в етапа $project, но можете да използвате етапа $redact, за да премахнете полето условно (т.е. задавате стойността на 0, както правите във вашия пример.

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


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вградена популация от мангуста

  2. MongoDB $lookup pipeline match by _id не работи

  3. Mongo UUID Тип 03 вместо 04 от mongo shell

  4. Принуди mongodb да извежда строг JSON

  5. Как да изброя всички бази данни MongoDB в Node.js?