Mongo 分组查询

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

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

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

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

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

© 2021 V2EX