2017-07-04 12 views
0

Redashで$ condを使用して、true/false/nullを意味のある値に変換しようとしています。私がクエリを実行するとき、私は偽の場合しか取得しません。

これは以下の質問です。私はプロジェクションに "isSuggestedProgram"を含めたので、今のところ値を確認することができます。

すべての結果は、isSuggestedProgramの値に関係なく結果として「カスタム」を示します。私が$ condをやっているところに何が間違っていますか?

{ 
    "collection": "Program", 
    "aggregate": [ 
     { 
      "$project": { 
       "isSuggestedProgram": "$isSuggestedProgram", 
       "suggested": { 
        "$cond": { 
         "if": { 
          "$eq": [ 
           "$isSuggestedProgram", "true" 
          ] 
         }, 
         "then": "Suggested", 
         "else": "Custom" 
        } 
       } 
      } 
     } 
    ] 
} 
+0

「文字列」は真の値ではなく「真」であるとします。それは実際にはブール値なので、 '' if ': '' isSuggestedProgram''を 'true/false'値として書くことで分岐を決定します。 –

答えて

1

ブール値を文字列化します。あなたが意図しているのは恐らく次のようなものでしょう:

"$isSuggestedProgram", true 
+0

ああ、一般的です。タイプミスを修正することは答えではありません。我々はそれに近い理由がある。 –

+0

ああ、もちろんそうです。ありがとうございました! – zorro2b

+0

私はそれが閉じられているか削除されても構いません。しかし、私は、答えることはコメントするよりも透明だと思います。乾杯。 –

関連する問題