У нас есть база данных MongoDB, из которой мы извлекаем данные из разных источников, используя совокупную структуру.
Сценарий Python генерирует отчеты в формате PDF, наша панель инструментов отображает графики данных, извлекаемых бэкэндом php.
Эти сценарии используют в основном одни и те же агрегатные конвейеры, но код реплицируется на python и php.
Мы хотели бы сделать запросы независимыми от фреймворка, в том числе потому, что планируем переместить бэкэнд с php на python и вообще избежать репликации кода.
Я думал, что одним из решений было бы иметь запросы в файле JS или как-то хранить их (на монго) на стороне сервера, но я не уверен, возможно ли это или нет.
Для тех, кто любит ссылаться на MySql, мы хотим что-то вроде MySql Views на MongoDB.
Любое предложение?
EDIT1:
Я экспериментирую с серверный Javascript но это, кажется, не вариант, так как, по-видимому, это позволяет $where
и « mapReduce«` операции. Загрузка внешнего Javascript также может быть вариантом.
Я бы порекомендовал хранить конвейерные агрегации в файлах 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)
Других решений пока нет …