Я использую агрегатный метод в Mongodb для выполнения запросов, мне очень легко устанавливать связи между другими документами или определенными преобразованиями. Я дошел до того, что мне приходится копировать различные части одного запроса в другой, особенно в $lookups и некоторых других вещах. У меня такое ощущение, что я использую много шаблонов, а также, когда мне нужно изменить поведение запроса, мне приходится вносить изменения в несколько частей кода, где выполняется один и тот же запрос.
Есть ли шаблон проектирования, позволяющий улучшить это? или, возможно, это обрабатывается по-другому? при условии, что он масштабируем и необходимо вносить минимальное количество изменений в код при появлении новых требований. Любой ресурс или помощь приветствуются. Большое спасибо, я новичок в Mongodb. Кстати, я обычно используюnesjs и выражаю
Я согласен, что более подробная информация здесь поможет. В то же время, возможно, вас могут заинтересовать Views?

Конвейер агрегации MongoDB — это язык Тьюринга, основанный на композиции функций. Только не используйте его как большой документ JSON, разбейте агрегацию на части, как в этом примере:
db.books.aggregate([
{$match: {year: 1985, pages: 150}}, {$project: {_id: 0, title: 1, year: 1, totalInventory: 1, available: 1}}, {$limit: 15}
])
Должно быть написано как:
let booksFrom1985With150pages = {$match: {year: 1985, pages: 150}};
let showOnlyTheseFields = {$project: {_id: 0, title: 1, year: 1, totalInventory: 1, available: 1}};
let getJust15books = {$limit: 15};
db.books.aggregate([
booksFrom1985With150pages,
showOnlyTheseFields,
getJust15books,
]);
Что, как вы можете видеть, более читабельно, тестируемо, пригодно для повторного использования и т. д.
Как вы определяете более читабельность, тестируемость и возможность повторного использования? Без четкого определения этот пост кажется самоуверенным вопросом и ответом. Можно также возразить, что отображение переменных и этапов агрегирования может быть трудным для чтения, если задействовано много этапов.
Читабельно: эта агрегация состоит из 3 этапов, которые вы можете увидеть сразу, без анализа большого JSON. Тестируемость: небольшие фрагменты, которые можно закомментировать для облегчения тестирования без необходимости использования большого JSON. Многоразовое использование: после определения там или в функции (где вы можете их параметризовать) вы можете повторно использовать их в других частях вашего кода.
Предоставьте код и расскажите, что вы сделали и чего хотите достичь. Без кода никто вам не поможет.