sql >> データベース >  >> NoSQL >> MongoDB

$switchを使用してMongoDB集計にスコアを追加する

    {"name": "sitt"}のように見えます 常にtrueに解決されます 。代わりに、**$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. lazy_staticで'await'を使用する代わりに!錆びたマクロ?

    2. 配列の最初の要素を取得し、Aggregateを使用して戻りますか?

    3. AppEngineアプリからMongoDBにアクセスする

    4. redis.confを保存して終了する方法は?