2017-02-08 3 views
0

私はmongodbの初心者です。次のSQLクエリをmongodbクエリに変換しようとしています。MongoDBの計算フィールドとコレクションフィールドを比較するには?

ename、sal、comm empから選択します。comm>(sal * 1.10);

以下がこれまでに試したことです。

  1. db.emp.aggregate([{$マッチ:{COMM:{$が存在する:真}}}、{$プロジェクト:{ENAME:1、SAL:1、COMM:1、 'CALSAL' {$ CALSAL}:{$ gt: '$ COMM'}}}]); {$ CALSAL} ($ {project:{ENAME:1、SAL:1、COMM:1、 'CALSAL':{CALSAL '}) $ {match:{'$ COMM':{$ gt: 'CALSAL'}}}}); $ multiply:['$ SAL'、1.10]}}}; ($ {project:{ENAME:1、SAL:1、COMM:1、 'CALSAL':{CALSAL '}) $ $ {$ gt:0}}}]); $ multiply:['$ SAL'、1.10]}、cmp_value:{$ cmp:['$ COMM'、 'C​​ALSAL']}}

助けてください。

ありがとうございます。

答えて

0

多くの努力の後、私は上記の問題を解決する2つの方法を得ました。

  1. db.emp.find({COMM:{$が存在する:真}、$ここで、 "this.COMM>(this.SAL * 1.10)"}、{ENAME:1、SAL:1、 COMM:1}); ($ {project:{ENAME:1、SAL:1、COMM:1、 'CALSAL':{CALSAL '}) {$ cmp:['$ COMM'、 '$ CALSAL']} $ {1}、{1}、{ }}、{$ match:{cmp_value:1}}]);

関連する問題