
从来没用过 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 拼接结果: 
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 查询拼接结果 
结果很悲剧 无论我用 concat concatArrays 它都不是把分组里的拿出来,而是只拿一个,如何才能像 mysql 一样拿出分组后的结果来拼接呢?
1 reus 2019-11-12 17:55:32 +08:00 via Android 谁做这种决定的,谁傻逼。好好的 sql 不用,用残疾的查询语言。真那么喜欢 json,就该换 postgresql |
2 coderabbit OP @reus 看文档解决了,拿他只是做二级数据库的,没接触过,正好要求用,就试试了… |