MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Добавяне на резултати към агрегирането на MongoDB с помощта на $switch

Изглежда като {"name": "sitt"} винаги се разрешава на истина . Вместо това трябва да използвате **$eq** оператор, за да работи.

също имайте предвид, че вашият **$match** етап може да бъде много опростен, тъй като вашите 3 израза са еквивалентни на

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

така че вашата заявка става:

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. MongoDB премахва всяка база данни

  2. Намиране на различни редове в обхват с mongoid

  3. Мога ли да изпълня необработена MongoDB заявка в node-mongodb-native драйвер?

  4. Заявката за търсене на текст за друг текст винаги не връща резултати?

  5. Връзка на SSL сокет на приложението Django към фърмуера