mysql 转写 mongo 语句.不知道算复杂不复杂!

2019-11-11 21:38:18 +08:00
 coderabbit

原 sql 语句

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

刚开始用 mongo 数据库很多操作不会写。简单的还会,这是 mysql 查询分组后的结果,转换到 mongo 没有写正确导致查询不出数据。想问问这样的 sql 语句转 mongo 合适吗?还是要怎么处理呢!

db.t_invoice.aggregate({ $group: { _id: "$insurer_id"} })
我这样写只能一个,多个我怎么写都报错,查询不出结果。而且字段名也不是我想要的 我把 _id 改成字段就开始报错!
14975 次点击
所在节点    MongoDB
5 条回复
Hieast
2019-11-11 22:38:25 +08:00
mongo 里面到处是 json,那个 id 也要写成 json
coderabbit
2019-11-11 22:40:49 +08:00
@Hieast

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}
}
}
)

这样子我看分组是出来了!但是还不知道如何加字段,count kv 我删除后就没有统计结果了。_id 我一改名就报错!我想它跟 mysql 查出来一样的结果!
Hieast
2019-11-12 01:45:18 +08:00
搜下 pipe
mmdsun
2019-11-12 09:04:16 +08:00
你需要一个转换工具。
用 studio 3t。直接写 SQL 可转换成 MongoDB shell,Java 代码,Python 代码。
catinsides
2019-11-12 09:26:28 +08:00
aggregate 里得是数组,db.t_invoice.aggregate([{...}, {...}]

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/618592

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX