mongodb 怎么实现类似 case when then
答案:1 悬赏:40 手机版
解决时间 2021-02-04 08:44
- 提问者网友:捧腹剧
- 2021-02-04 05:52
mongodb 怎么实现类似 case when then
最佳答案
- 五星知识达人网友:低血压的长颈鹿
- 2021-02-04 06:37
mongodb中使用 $cond条件来完成类似case when then的功能。
node.js参考代码
exports.sumByGSAsync = function (opts) {
var results = {error_code: -1, error_msg: "error"};
var beginDate=opts.beginDate;
var endDate=opts.endDate;
var pipeline =[
{
$match: {
sjbh: {$gte: beginDate, $lte:endDate}
}
},
{
$group: {
_id: "$gsbh",
totaltxl: {$sum: { $cond: { if: { $ne: [ "$totalnum","" ] }, then:"$txl" , else: 0 }}},
totalbmynum: {$sum: "$bmynum"}
}
},
{
$project: {
_id: 0,
gsbh: "$_id",
totaltxl: "$totaltxl",
totalbmynum: "$totalbmynum",
ratio: { $divide: [ "$totalbmynum", { $cond:{if: { $eq: [ "$totaltxl",0 ] }, then:1 , else: "$totaltxl" }}] }
}
},
{$sort: {ratio: -1}}
];
return opts.dbs.csdb.collection("permydfx").aggregateAsync(pipeline)
.timeout(opts.configs.timeoutnormal)
.then(function (value) {
.....
});
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯