Browse Source

chore: updates README.md

e22m4u 3 months ago
parent
commit
75d5b78364
1 changed files with 57 additions and 5 deletions
  1. 57 5
      README.md

+ 57 - 5
README.md

@@ -1139,15 +1139,67 @@ const res = await rep.find({
 
 
 Связи позволяют описывать отношения между моделями, что дает возможность
 Связи позволяют описывать отношения между моделями, что дает возможность
 автоматически встраивать связанные данные с помощью опции `include`
 автоматически встраивать связанные данные с помощью опции `include`
-в методах репозитория.
+в методах репозитория. Ниже приводится пример автоматического разрешения
+связи методом `findById`.
 
 
-Параметр `relations` в определении модели принимает объект, где ключ является
-названием связи, а значение - объект с параметрами.
+```js
+// запрос документа коллекции "users",
+// включая связанные данные (role и city)
+const user = await userRep.findById(1, {
+  include: ['role', 'city'],
+});
+
+console.log(user);
+// {
+//   id: 1,
+//   name: 'John Doe',
+//   roleId: 3,
+//   role: {
+//     id: 3,
+//     name: 'Manager'
+//   },
+//   cityId: 24,
+//   city: {
+//     id: 24,
+//     name: 'Moscow'
+//   }
+// }
+```
+
+### Определение связи
+
+Свойство `relations` в определении модели принимает объект, ключи которого
+являются названиями связей, а значения их параметрами.
+
+```js
+import {DataType} from '@e22m4u/js-repository';
+import {RelationType} from '@e22m4u/js-repository';
+
+dbs.defineModel({
+  name: 'user',
+  datasource: 'memory',
+  properties: {
+    name: DataType.STRING,
+  },
+  relations: {
+    // связь role -> параметры
+    role: {
+      type: RelationType.BELONGS_TO,
+      model: 'role',
+    },
+    // связь city -> параметры
+    city: {
+      type: RelationType.BELONGS_TO,
+      model: 'city',
+    },
+  },
+});
+```
 
 
-**Общие параметры**
+**Основные параметры**
 
 
 - `type: string` тип связи (обязательно);
 - `type: string` тип связи (обязательно);
-- `model: string` название целевой модели;
+- `model: string` название целевой модели (обязательно для некоторых типов);
 - `foreignKey: string` свойство текущей модели для идентификатора цели;
 - `foreignKey: string` свойство текущей модели для идентификатора цели;
 
 
 **Полиморфный режим**
 **Полиморфный режим**