mongo mysql group by_mysql group sum concat 等转 mongo 查询语句 concat 拼接不对。

从来没用过 mongodb 转写不熟悉现在遇到如下情况

mysql 语句

SELECT `*`,GROUP_CONCAT(`invoice_number`) as `invoice_number_all`,ROUND(SUM(`invoice_amount`)/100,2) as `invoice_amount_all`,ROUND(SUM(`premium_amount`)/100,2) as `premium_amount_all` FROM `t_invoice`

WHERE `id` != 0

GROUP BY `insurer_id`,`region_id`,`invoice_company_id`,`data_type`,`invoice_date`,`invoice_remark`

ORDER BY `invoice_date` DESC LIMIT 0,15

mysql concat 拼接结果:

WX20191112-162158.png

mongodb 查询语句

db.t_invoice.aggregate(

{

"$group": {

_id: {

insurer_id:"$insurer_id",

region_id: "$region_id",

invoice_company_id:"$invoice_company_id",

data_type: "$data_type",

invoice_date: "$invoice_date",

invoice_remark: "$invoice_remark",

},

count:{$sum:1},

"create_by": {"$first": "$create_by"},

"invoice_date": {"$first": {$dateToString: {format: "%Y-%m-%d", "date": {"$add": [new Date(0), {"$multiply" : ["$invoice_date", 1000]}]}}}},

"invoice_amount": {"$sum": {"$divide": ["$invoice_amount", 100]}},

"invoice_number": {"$first": {"$concat": ["$invoice_number", "-"]}},

"invoice_code": {"$first": "$invoice_code"},

"invoice_company_name": {"$first": "$invoice_company_name"},

"insurer_name": {"$first": "$insurer_name"},

"premium_amount": {"$sum": "$premium_amount"},

"region_name": {"$first": "$region_name"},

"invoice_remark": {"$first": "$invoice_remark"},

}

}

)

mongo 查询拼接结果

WX20191112-162936.png

结果很悲剧 无论我用 concat concatArrays 它都不是把分组里的拿出来,而是只拿一个,如何才能像 mysql 一样拿出分组后的结果来拼接呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值