sql >> Database >  >> NoSQL >> MongoDB

Scores toevoegen aan MongoDB-aggregatie met $switch

Het ziet eruit als {"name": "sitt"} lost altijd op naar true . Gebruik in plaats daarvan de **$eq** operator om het te laten werken.

Houd er ook rekening mee dat uw **$match** fase kan veel worden vereenvoudigd omdat uw 3 uitdrukkingen gelijk zijn aan

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

dus uw vraag wordt:

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


  1. MongoDB met Mongoid in Rails - Geospatiale indexering

  2. Op afstand verbinding maken met MongoDB http-interface op EC2-server

  3. systemctl niet gevonden tijdens het bouwen van mongo-afbeelding

  4. Hoe BsonRepresentation-attribuut volgens afspraak toe te passen bij gebruik van MongoDB