sql >> Databasteknik >  >> NoSQL >> MongoDB

Lägga till poäng till MongoDB-aggregation med $switch

Det ser ut som {"name": "sitt"} löser sig alltid till true . Du bör istället använda **$eq** operatör för att få det att fungera.

Observera också att din **$match** scenen kan förenklas mycket eftersom dina 3 uttryck motsvarar

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

så din fråga blir:

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


  1. Perl Mongo hitta objekt Id

  2. MongoDB:Hur man hittar den exakta versionen av installerade MongoDB

  3. MongoDB aggregerat fält i array av objekt

  4. Prestandaökning genom att använda bulkinserts jämfört med vanliga inserts i MongoDB