V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
choice4
V2EX  ›  MongoDB

Mongo 分组查询

  •  
  •   choice4 · 2020-08-02 10:39:27 +08:00 via Android · 5184 次点击
    这是一个创建于 1575 天前的主题,其中的信息可能已经有所发展或是发生改变。
    Spring data MongoTemplate.
    可以做到按字段值的一部分分组聚合吗?
    类似关系型数据库 sql(postgres)如下:
    SELECT "left"(code,2) As "code",SUM(a) AS a FROM t GROUP BY "left"(code,2).
    手机打的格式可能会乱
    8 条回复    2020-08-03 00:00:29 +08:00
    wongy
        1
    wongy  
       2020-08-02 10:54:42 +08:00
    没有用过,但是我一般是查出来,放到内存里面再分组。
    choice4
        2
    choice4  
    OP
       2020-08-02 11:08:58 +08:00 via Android
    @wongy 是全表的,直接放在内存里放不下,现在是先按 code 聚合一遍,再在代码里做 left(code,2)的聚合,看看有没有一步到位的
    z657386160z
        3
    z657386160z  
       2020-08-02 11:14:24 +08:00 via iPhone
    $substr
    JCZ2MkKb5S8ZX9pq
        4
    JCZ2MkKb5S8ZX9pq  
       2020-08-02 11:16:55 +08:00
    说出来你可能不信,我没用过 sql……
    不过 mongo 的话,有 aggregate + $group,具体你可以根据需求搜看看。
    aguesuka
        5
    aguesuka  
       2020-08-02 12:09:40 +08:00   ❤️ 1
    可以 https://docs.mongodb.com/manual/aggregation/
    mongo 除了 join, 其他 sql 能做的都能做
    choice4
        6
    choice4  
    OP
       2020-08-02 15:11:26 +08:00 via Android
    @aguesuka thx,map reduce 应该可以做到
    picone
        7
    picone  
       2020-08-02 22:59:14 +08:00
    choice4
        8
    choice4  
    OP
       2020-08-03 00:00:29 +08:00 via Android
    可以,已经搞出来了。MongoTemplate 在聚合是 Aggregation.project 可以对字段 substring,然后继续向下传递。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2767 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 06:24 · PVG 14:24 · LAX 22:24 · JFK 01:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.