MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Warunkowo uwzględnić pole (_id lub inne) w agregacji projektu mongodb?

Nie ma obecnie sposobu, aby to zrobić na etapie $project, ale możesz użyć etapu $redact, aby warunkowo usunąć pole (tj. Ustawiasz wartość na 0, tak jak to robisz w swoim przykładzie.

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. dopasowanie wielobajtowych znaków utf8 w wyrażeniu regularnym mongodb

  2. Pobierz BinData UUID z Mongo jako ciąg

  3. node js mongodb usuń klucz błędu $lte nie może zaczynać się od '$'

  4. MongoDB PHP:Jak uzyskać ObjectId za pomocą kanału JSON? (jest puste)

  5. .insertOne nie jest funkcją