2015-06-04 32 views
2

我們有一個MongoDB數據庫,我們使用這個聚合框架從不同的數據源提取數據。在多個腳本之間共享的MongoDB服務器端聚合查詢

python腳本生成pdf報告,我們的儀表板繪製了php後端拉取的數據圖。 這些腳本大多使用相同的聚合流水線,但是代碼在python和php中被複制。

我們希望使查詢與框架無關,也是因爲我們打算將後端從php移到python,並且通常避免代碼複製。

我認爲一種解決方案將是在JS文件中查詢,或以某種方式將它們存儲在(在mongo上)服務器端,但我不確定這是否可行。

對於那些喜歡引用MySql的人,我們希望像MongoDB上的MySql Views這樣的東西。 有什麼建議嗎?

EDIT1:

我與server-side Javascript嘗試,但它似乎並沒有成爲一種選擇,因爲它顯然只允許$where和``mapReduce```操作。加載一個外部的Javascript也可能是一個選項。

回答

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) 
+0

輝煌。我想我甚至可以在db中執行它,調用runCommand。 – Alain1405

+0

你的意思是在mongo shell中執行?是的,我想是這樣。 –

相關問題