如何在MongoDB中比较计算字段与集合字段



我是mongodb的新手。我正在尝试将以下sql查询转换为mongodb查询。

从 EMM 中选择 ename,sal,comm 其中通信> (sal*1.10(;

以下是我到目前为止尝试过的。

  1. db.emp.aggregate([ {$match: {COMM

  2. : {$exists: true}}}, { $project: { ENAME : 1, SAL : 1, COMM :1, 'CALSAL' : { $multiply : [ '$SAL', 1.10 ]}}} ,{$match : {'CALSAL' : {$gt : '$COMM'}}}](;
  3. db.emp.aggregate([ {$match: {COMM

  4. : {$exists: true}}}, { $project: { ENAME : 1, SAL : 1, COMM :1, 'CALSAL' : { $multiply : [ '$SAL', 1.10 ]}}} ,{$match : { '$COMM' : {$gt : 'CALSAL'} }}](;
  5. db.emp.aggregate([ {$match: {COMM

  6. : {$exists: true}}}, { $project: { ENAME : 1, SAL : 1, COMM :1, 'CALSAL' : { $multiply : [ '$SAL', 1.10 ]}, cmp_value: {$cmp: ['$COMM', 'CALSAL']} } ,{$match : { cmp_value : {$gt : 0} }}](;

任何帮助将不胜感激。

提前谢谢。

经过大量努力,我有两种方法来解决上述问题。

  1. db.emp.find({COMM: {$exists: true}, $where: "this.通信>(这个。SAL * 1.10("},{ENAME : 1, SAL : 1, COMM :1}(;

  2. db.emp.aggregate([ {$match: {COMM

  3. : {$exists: true}}}, { $project: { ENAME : 1, SAL : 1, COMM :1, 'CALSAL' : { $multiply : [ '$SAL', 1.10 ]} } }, { $project: { ENAME : 1, SAL : 1, COMM :1, cmp_value: {$cmp: ['$COMM', '$CALSAL']} }} ,{$match : { cmp_value : 1} } ](;

最新更新