推荐工具
RoboMongo
推荐书目
50 Tips and Tricks for MongoDB Developers
Related Blogs
Snail in a Turtleneck
JohnZorn
V2EX  ›  MongoDB

Mongo 分组查询

  •  
  •   JohnZorn · Aug 2, 2020 via Android · 6065 views
    This topic created in 2121 days ago, the information mentioned may be changed or developed.
    Spring data MongoTemplate.
    可以做到按字段值的一部分分组聚合吗?
    类似关系型数据库 sql(postgres)如下:
    SELECT "left"(code,2) As "code",SUM(a) AS a FROM t GROUP BY "left"(code,2).
    手机打的格式可能会乱
    8 replies    2020-08-03 00:00:29 +08:00
    wongy
        1
    wongy  
       Aug 2, 2020
    没有用过,但是我一般是查出来,放到内存里面再分组。
    JohnZorn
        2
    JohnZorn  
    OP
       Aug 2, 2020 via Android
    @wongy 是全表的,直接放在内存里放不下,现在是先按 code 聚合一遍,再在代码里做 left(code,2)的聚合,看看有没有一步到位的
    z657386160z
        3
    z657386160z  
       Aug 2, 2020 via iPhone
    $substr
    JCZ2MkKb5S8ZX9pq
        4
    JCZ2MkKb5S8ZX9pq  
       Aug 2, 2020
    说出来你可能不信,我没用过 sql……
    不过 mongo 的话,有 aggregate + $group,具体你可以根据需求搜看看。
    aguesuka
        5
    aguesuka  
       Aug 2, 2020   ❤️ 1
    可以 https://docs.mongodb.com/manual/aggregation/
    mongo 除了 join, 其他 sql 能做的都能做
    JohnZorn
        6
    JohnZorn  
    OP
       Aug 2, 2020 via Android
    @aguesuka thx,map reduce 应该可以做到
    JohnZorn
        8
    JohnZorn  
    OP
       Aug 3, 2020 via Android
    可以,已经搞出来了。MongoTemplate 在聚合是 Aggregation.project 可以对字段 substring,然后继续向下传递。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1076 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 18:05 · PVG 02:05 · LAX 11:05 · JFK 14:05
    ♥ Do have faith in what you're doing.