我是mongodb的新手。我正在尝试将以下sql查询转换为mongodb查询。
从 EMM 中选择 ename,sal,comm 其中通信> (sal*1.10(;
以下是我到目前为止尝试过的。
-
db.emp.aggregate([ {$match: {COMM
: {$exists: true}}}, { $project: { ENAME : 1, SAL : 1, COMM :1, 'CALSAL' : { $multiply : [ '$SAL', 1.10 ]}}} ,{$match : {'CALSAL' : {$gt : '$COMM'}}}](; db.emp.aggregate([ {$match: {COMM
: {$exists: true}}}, { $project: { ENAME : 1, SAL : 1, COMM :1, 'CALSAL' : { $multiply : [ '$SAL', 1.10 ]}}} ,{$match : { '$COMM' : {$gt : 'CALSAL'} }}](;db.emp.aggregate([ {$match: {COMM
: {$exists: true}}}, { $project: { ENAME : 1, SAL : 1, COMM :1, 'CALSAL' : { $multiply : [ '$SAL', 1.10 ]}, cmp_value: {$cmp: ['$COMM', 'CALSAL']} } ,{$match : { cmp_value : {$gt : 0} }}](;
任何帮助将不胜感激。
提前谢谢。
经过大量努力,我有两种方法来解决上述问题。
-
db.emp.find({COMM: {$exists: true}, $where: "this.通信>(这个。SAL * 1.10("},{ENAME : 1, SAL : 1, COMM :1}(;
-
db.emp.aggregate([ {$match: {COMM
: {$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} } ](;