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

2019-07-11 11:34:04 +08:00
 Vegetable

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.稍微找了一下,好像没有现成的轮子,难道别人都不会被类似的问题困扰吗?

8973 次点击
所在节点    MongoDB
11 条回复
anakinsky
2019-07-11 11:55:02 +08:00
Spring Data MongoTemplate
zhybb2010
2019-07-11 11:58:55 +08:00
+1
wizzer
2019-07-11 12:04:49 +08:00
andylsr
2019-07-11 12:08:31 +08:00
自己封装一下。。。
Vegetable
2019-07-11 12:42:51 +08:00
@wizzer
@anakinsky

java 大法好,这样起码不用自己设计了,抄一个差不多的到项目里来也好.
itskingname
2019-07-11 12:47:00 +08:00
Python 我自己写了一个。
mmdsun
2019-07-11 13:24:28 +08:00
studio 3T 可以写 SQL 它自动生成 MongoDB 查询语句
mmdsun
2019-07-11 13:25:12 +08:00
@mmdsun 语言包括 Java,Python 都支持。
leafiy
2019-07-11 18:54:18 +08:00
我在做的是你的 3-5 倍长度,细粒拆分一下,做一个配置文件,起码看起来舒服多了
460881773
2019-07-11 20:30:45 +08:00
一楼加一
qile1
2019-07-12 09:45:06 +08:00
redash 里面有编辑 sql 语句,可以参考下,我没细研究

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

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

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

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

© 2021 V2EX