我们有一个MongoDB数据库,我们使用聚合框架从中提取不同来源的数据。
python脚本生成pdf报告,我们的仪表板绘制了由php后端提取的数据图。 这些脚本大多使用相同的聚合管道,但代码在python和php中复制。
我们希望使查询框架独立,也因为我们计划将后端从php移动到python,并且通常是为了避免代码复制。
我认为一个解决方案是将查询放在JS文件中,或以某种方式存储它们(在mongo上)服务器端,但我不确定这是否可行。
对于那些喜欢引用MySql的人,我们想要像MongoDB上的MySql Views。 有什么建议吗?
EDIT1:
我正在试验server-side Javascript,但它似乎不是一个选项,因为它显然只允许$where
和``mapReduce```操作。加载外部Javascript也是一种选择。
答案 0 :(得分:1)
我建议将聚合管道存储在JSON文件中并使用脚本加载它们。例如。在Python中:
import json
import pymongo
pipeline = json.load(open('filename.json'))
collection = pymongo.MongoClient().db.collection
for doc in collection.aggregate(pipeline):
print(doc)