Серверные агрегатные запросы MongoDB, используемые несколькими сценариями

У нас есть база данных MongoDB, из которой мы извлекаем данные из разных источников, используя совокупную структуру.

Сценарий Python генерирует отчеты в формате PDF, наша панель инструментов отображает графики данных, извлекаемых бэкэндом php.
Эти сценарии используют в основном одни и те же агрегатные конвейеры, но код реплицируется на python и php.

Мы хотели бы сделать запросы независимыми от фреймворка, в том числе потому, что планируем переместить бэкэнд с php на python и вообще избежать репликации кода.

Я думал, что одним из решений было бы иметь запросы в файле JS или как-то хранить их (на монго) на стороне сервера, но я не уверен, возможно ли это или нет.

Для тех, кто любит ссылаться на MySql, мы хотим что-то вроде MySql Views на MongoDB.
Любое предложение?

EDIT1:

Я экспериментирую с серверный Javascript но это, кажется, не вариант, так как, по-видимому, это позволяет $where и « mapReduce«` операции. Загрузка внешнего Javascript также может быть вариантом.

2

Решение

Я бы порекомендовал хранить конвейерные агрегации в файлах 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)
1

Другие решения

Других решений пока нет …