|
|
@@ -8,22 +8,56 @@
|
|
|
npm install @e22m4u/js-repository
|
|
|
```
|
|
|
|
|
|
-Опционально устанавливаем адаптер. Например, если используется
|
|
|
-*MongoDB*, то для подключения потребуется установить
|
|
|
-[адаптер mongodb](https://www.npmjs.com/package/@e22m4u/js-repository-mongodb-adapter)
|
|
|
-как отдельную зависимость.
|
|
|
-
|
|
|
-```bash
|
|
|
-npm install @e22m4u/js-repository-mongodb-adapter
|
|
|
-```
|
|
|
-
|
|
|
-Список адаптеров:
|
|
|
+Опционально устанавливаем адаптер:
|
|
|
|
|
|
| | описание |
|
|
|
|-----------|--------------------------------------------------------------------------------------------------------------------------------|
|
|
|
| `memory` | виртуальная база в памяти процесса (не требует установки) |
|
|
|
| `mongodb` | MongoDB - система управления NoSQL базами (*[установка](https://www.npmjs.com/package/@e22m4u/js-repository-mongodb-adapter))* |
|
|
|
|
|
|
+## Введение
|
|
|
+
|
|
|
+Модуль позволяет объединить несколько баз данных в единую абстракцию «Схема».
|
|
|
+Являясь экземпляром класса `Schema`, абстракция предоставляет методы для
|
|
|
+определения «Источника данных» и «Модели». Источник заботится о подключении
|
|
|
+к базе, а модель описывает структуру документа коллекции и связи к другим
|
|
|
+моделям.
|
|
|
+
|
|
|
+Непосредственно чтение и запись производится с помощью «Репозитория», который
|
|
|
+можно получить для каждой модели, если она имеет источник данных.
|
|
|
+
|
|
|
+```mermaid
|
|
|
+flowchart TD
|
|
|
+
|
|
|
+ A[Схема]
|
|
|
+ subgraph Базы данных
|
|
|
+ B[Источник 1]
|
|
|
+ C[Источник 2]
|
|
|
+ end
|
|
|
+ A-->B
|
|
|
+ A-->C
|
|
|
+
|
|
|
+ subgraph Коллекции
|
|
|
+ D[Модель A]
|
|
|
+ E[Модель Б]
|
|
|
+ F[Модель В]
|
|
|
+ G[Модель Г]
|
|
|
+ end
|
|
|
+ B-->D
|
|
|
+ B-->E
|
|
|
+ C-->F
|
|
|
+ C-->G
|
|
|
+
|
|
|
+ H[Репозиторий A]
|
|
|
+ I[Репозиторий Б]
|
|
|
+ J[Репозиторий В]
|
|
|
+ K[Репозиторий Г]
|
|
|
+ D-->H
|
|
|
+ E-->I
|
|
|
+ F-->J
|
|
|
+ G-->K
|
|
|
+```
|
|
|
+
|
|
|
## Тесты
|
|
|
|
|
|
```bash
|