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

又臭又长的 Mongodb 聚合语句该怎么管理

  •  
  •   Vegetable · 2019-07-11 11:34:04 +08:00 · 8953 次点击
    这是一个创建于 1722 天前的主题,其中的信息可能已经有所发展或是发生改变。

    MongoDB 的聚合语句有时候会写的比较长,语句本身信噪比比较低,有很多的符号,比如{}[]:""$,写在代码里经常就是一大片.看起来眼睛都花了.如果不写在代码里又觉得不合适.

    今天在想为什么没有一个类似于这种的框架呢:

    class Aggregate:
        """ Do some magic """
    a = Aggregate()
    a.match(time={"$gte": "2019"})
    a.project(_id=0)
    a.sort(time=-1)
    
    # a.pipeline
    # [{"$match": {"time": "$gte": "2019"}}, {"$project": {"_id": 0}}, {"sort": {"time": -1}}]
    
    
    

    感觉这样在代码里层次感能更好一点,其实就是一个类似 ORM 自动生成 SQL.稍微找了一下,好像没有现成的轮子,难道别人都不会被类似的问题困扰吗?

    11 条回复    2019-07-12 09:45:06 +08:00
    anakinsky
        1
    anakinsky  
       2019-07-11 11:55:02 +08:00
    Spring Data MongoTemplate
    zhybb2010
        2
    zhybb2010  
       2019-07-11 11:58:55 +08:00
    +1
    andylsr
        4
    andylsr  
       2019-07-11 12:08:31 +08:00 via Android
    自己封装一下。。。
    Vegetable
        5
    Vegetable  
    OP
       2019-07-11 12:42:51 +08:00
    @wizzer
    @anakinsky

    java 大法好,这样起码不用自己设计了,抄一个差不多的到项目里来也好.
    itskingname
        6
    itskingname  
       2019-07-11 12:47:00 +08:00 via iPhone
    Python 我自己写了一个。
    mmdsun
        7
    mmdsun  
       2019-07-11 13:24:28 +08:00 via Android   ❤️ 1
    studio 3T 可以写 SQL 它自动生成 MongoDB 查询语句
    mmdsun
        8
    mmdsun  
       2019-07-11 13:25:12 +08:00 via Android
    @mmdsun 语言包括 Java,Python 都支持。
    leafiy
        9
    leafiy  
       2019-07-11 18:54:18 +08:00
    我在做的是你的 3-5 倍长度,细粒拆分一下,做一个配置文件,起码看起来舒服多了
    460881773
        10
    460881773  
       2019-07-11 20:30:45 +08:00
    一楼加一
    qile1
        11
    qile1  
       2019-07-12 09:45:06 +08:00 via Android
    redash 里面有编辑 sql 语句,可以参考下,我没细研究
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   960 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 20:36 · PVG 04:36 · LAX 13:36 · JFK 16:36
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.