|
@@ -119,27 +119,35 @@ schema.defineModel({
|
|
|
});
|
|
});
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+**Название модели и коллекции**
|
|
|
|
|
+
|
|
|
Название модели должно быть уникальным, так как оно используется
|
|
Название модели должно быть уникальным, так как оно используется
|
|
|
-для определения отношений к другим моделям, и для названия таблицы
|
|
|
|
|
-в базе данных. При необходимости можно явно задать название таблицы
|
|
|
|
|
-параметром `tableName`, если оно не соответствует названию модели.
|
|
|
|
|
|
|
+для определения связей и соответствует названию коллекции в базе.
|
|
|
|
|
+При необходимости можно явно задать название коллекции параметром
|
|
|
|
|
+`tableName`, если оно не соответствует названию модели.
|
|
|
|
|
+
|
|
|
|
|
+```js
|
|
|
|
|
+schema.defineModel({
|
|
|
|
|
+ name: 'city', // название модели
|
|
|
|
|
+ tableName: 'CITIES', // название коллекции
|
|
|
|
|
+});
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**Источник данных**
|
|
|
|
|
|
|
|
Если модель отражает реальную коллекцию базы, а не является частью другой,
|
|
Если модель отражает реальную коллекцию базы, а не является частью другой,
|
|
|
-то указывая параметр `datasource` появляется возможность получить репозиторий
|
|
|
|
|
-этой модели (см. [Репозиторий](#Репозиторий)), с помощью которого выполняются
|
|
|
|
|
-операции чтения и записи в базу.
|
|
|
|
|
|
|
+то указывая название источника данных в параметре `datasource` появляется
|
|
|
|
|
+возможность получить репозиторий для этой модели (см. [Репозиторий](#Репозиторий)).
|
|
|
|
|
|
|
|
```js
|
|
```js
|
|
|
schema.defineModel({
|
|
schema.defineModel({
|
|
|
name: 'city',
|
|
name: 'city',
|
|
|
- datasource: 'myMemory', // выбранный источник
|
|
|
|
|
- properties: {
|
|
|
|
|
- name: DataType.STRING,
|
|
|
|
|
- population: DataType.NUMBER,
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ datasource: 'myDatasource', // выбранный источник
|
|
|
});
|
|
});
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+**Поля документа**
|
|
|
|
|
+
|
|
|
Параметр `properties` принимает объект, ключи которого являются именами
|
|
Параметр `properties` принимает объект, ключи которого являются именами
|
|
|
полей, а значением тип поля или объект с дополнительными параметрами.
|
|
полей, а значением тип поля или объект с дополнительными параметрами.
|
|
|
Эти настройки используются для проверки данных перед сохранением в базу
|
|
Эти настройки используются для проверки данных перед сохранением в базу
|
|
@@ -148,21 +156,37 @@ schema.defineModel({
|
|
|
```js
|
|
```js
|
|
|
schema.defineModel({
|
|
schema.defineModel({
|
|
|
name: 'city',
|
|
name: 'city',
|
|
|
- datasource: 'myMemory',
|
|
|
|
|
properties: {
|
|
properties: {
|
|
|
name: DataType.STRING,
|
|
name: DataType.STRING,
|
|
|
- population: { // расширенные параметры
|
|
|
|
|
- type: DataType.NUMBER, // тип значения
|
|
|
|
|
- default: 0, // значение по умолчанию
|
|
|
|
|
- },
|
|
|
|
|
|
|
+ population: DataType.NUMBER,
|
|
|
},
|
|
},
|
|
|
});
|
|
});
|
|
|
```
|
|
```
|
|
|
|
|
|
|
|
|
|
+**Наследование**
|
|
|
|
|
+
|
|
|
Модель может наследовать поля и связи используя параметр `base`, куда
|
|
Модель может наследовать поля и связи используя параметр `base`, куда
|
|
|
передается название базовой модели. При этом наследуемые настройки можно
|
|
передается название базовой модели. При этом наследуемые настройки можно
|
|
|
переопределять не затрагивая родителя.
|
|
переопределять не затрагивая родителя.
|
|
|
|
|
|
|
|
|
|
+```js
|
|
|
|
|
+// базовая модель "area"
|
|
|
|
|
+schema.defineModel({
|
|
|
|
|
+ name: 'area',
|
|
|
|
|
+ properties: {
|
|
|
|
|
+ name: DataType.STRING,
|
|
|
|
|
+ population: DataType.NUMBER,
|
|
|
|
|
+ },
|
|
|
|
|
+});
|
|
|
|
|
+
|
|
|
|
|
+// модель "city" наследует от модели
|
|
|
|
|
+// "area" поля "name" и "population"
|
|
|
|
|
+schema.defineModel({
|
|
|
|
|
+ name: 'city',
|
|
|
|
|
+ base: 'area',
|
|
|
|
|
+});
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
#### Параметры модели
|
|
#### Параметры модели
|
|
|
|
|
|
|
|
- `name: string` название модели (обязательно)
|
|
- `name: string` название модели (обязательно)
|