-1

私はrunningPnLフィールドとdescriptionフィールドとdateフィールドを持っています。
私がやりたい:
説明は "分裂" であるならば、= 2 * runningPnL
multipliedPnLがそうでなければmultipliedPnL = runningPnL
私のコードは次のとおりです。mongodb:ifその他のブランケットで定数をフィールドに乗算する方法

db.getCollection('user0').aggregate(
    [ 
     { 
     $project: 
      { 
      thedate: 1, 

      realPnL: 
       { 
       $cond: { if: { $gte: [ "$description", "Breakup" ] }, then: {$multiply:[$runningPnL,2]}, else: $runningPnL} 
       } 
      } 
     } 
    ] 
) 

は、参照エラーをtheresの:runningPnLが定義されていません。 私のコードで何が間違っていますか? あなたの助けを事前にたくさんthx!

+0

のようなものです'' $ runningPnL ''、 '' $ runningPnL ''、 '' $ runningPnL "'? – chridam

+1

"runningPnL"がどこに存在するかを確認するには、サンプルドキュメント(コレクションデータ)を表示する必要があります。私はこれが "runningPnl"に到達する方法を教えてくれると思います。しかし、あなたのコードは正しいように見えます。 – JBone

+0

ハハ!ありがとう! –

答えて

0

$ mulを試すことができますか?あなたのmongodb版は何ですか?

参考:あなたは、例えば、引用符でフィールド変数を囲むみましたドキュメントのhttps://docs.mongodb.com/manual/reference/operator/update/mul/

の例では、この

db.products.update(
{ _id: 1 }, 
{ $mul: { price: 1.25 } } 
) 
+0

これが質問に答えるかわからない場合、OPは特定の条件にフィールドを投影し、コレクションを更新しません。 – chridam

+0

その解決済みのすべて –

関連する問題