Я использую агрегатный метод в Mongodb для выполнения запросов, мне очень легко устанавливать связи между другими документами или определенными преобразованиями. Я дошел до того, что мне приходится копировать различные части одного запроса в другой, особенно в $lookups и некоторых других вещах. У меня такое ощущение, что я использую много шаблонов, а также, когда мне нужно изменить поведение запроса, мне приходится вносить изменения в несколько частей кода, где выполняется один и тот же запрос.
Есть ли шаблон проектирования, позволяющий улучшить это? или, возможно, это обрабатывается по-другому? при условии, что он масштабируем и необходимо вносить минимальное количество изменений в код при появлении новых требований. Любой ресурс или помощь приветствуются. Большое спасибо, я новичок в Mongodb. Кстати, я обычно используюnesjs и выражаю
🤔 А знаете ли вы, что...
MongoDB предоставляет средства для миграции данных из других СУБД в MongoDB...
Конвейер агрегации 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,
]);
Что, как вы можете видеть, более читабельно, тестируемо, пригодно для повторного использования и т. д.