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

Přidání skóre do agregace MongoDB pomocí $switch

Vypadá to jako {"name": "sitt"} vždy se vyhodnotí jako pravda . Místo toho byste měli použít **$eq** operátora, aby to fungovalo.

také si všimněte, že váš **$match** fázi lze hodně zjednodušit, protože vaše 3 výrazy jsou ekvivalentní

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

takže váš dotaz bude:

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


  1. Získání více klíčových hodnot z Redis

  2. Převod binárního _id mongodb na LUUID pomocí uzlu

  3. MongoDB db.copyDatabase selže při neoprávněném

  4. Jak uložit binární objekt v redis pomocí uzlu?