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

Dodawanie wyników do agregacji MongoDB za pomocą $switch

Wygląda jak {"name": "sitt"} zawsze rozstrzyga prawda . Zamiast tego powinieneś użyć **$eq** operatora, aby to działało.

pamiętaj również, że Twój **$match** etap może być bardzo uproszczony, ponieważ twoje 3 wyrażenia są równoważne

{$match: {name: /sitt/i}}

więc Twoje zapytanie staje się:

db.getCollection('tags').aggregate([
   {
      $match:{
         name:/sitt/i
      }
   },
   {
      $project:{
         name: 1,
         score:{
            $switch:{
               branches:[
                  {
                     case:{
                        $eq:[
                           "$name",
                           "sitt"
                        ]
                     },
                     then:100
                  }
               ],
               default:50
            }
         }
      }
   }
])


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Łatwy sposób na synchronizację danych między MongoDB i Apache Solr

  2. Nie udało się połączyć Mongolab z MongodbShell

  3. Jak czytać zbiory w kawałkach po 1000?

  4. ClusterControl — wszystkie najważniejsze funkcje i ulepszenia z 2017 roku

  5. Agregacja Mongodb:$reduce nie działa zgodnie z oczekiwaniami