Mongo 分组查询

2020 年 8 月 2 日
 JohnZorn
Spring data MongoTemplate.
可以做到按字段值的一部分分组聚合吗?
类似关系型数据库 sql(postgres)如下:
SELECT "left"(code,2) As "code",SUM(a) AS a FROM t GROUP BY "left"(code,2).
手机打的格式可能会乱
5928 次点击
所在节点    MongoDB
8 条回复
wongy
2020 年 8 月 2 日
没有用过,但是我一般是查出来,放到内存里面再分组。
JohnZorn
2020 年 8 月 2 日
@wongy 是全表的,直接放在内存里放不下,现在是先按 code 聚合一遍,再在代码里做 left(code,2)的聚合,看看有没有一步到位的
z657386160z
2020 年 8 月 2 日
$substr
JCZ2MkKb5S8ZX9pq
2020 年 8 月 2 日
说出来你可能不信,我没用过 sql……
不过 mongo 的话,有 aggregate + $group,具体你可以根据需求搜看看。
aguesuka
2020 年 8 月 2 日
可以 https://docs.mongodb.com/manual/aggregation/
mongo 除了 join, 其他 sql 能做的都能做
JohnZorn
2020 年 8 月 2 日
@aguesuka thx,map reduce 应该可以做到
picone
2020 年 8 月 2 日
JohnZorn
2020 年 8 月 3 日
可以,已经搞出来了。MongoTemplate 在聚合是 Aggregation.project 可以对字段 substring,然后继续向下传递。

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

https://study.congcong.us/t/694968

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

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

© 2021 V2EX