|
|
@@ -67,6 +67,54 @@ const schema = new Schema();
|
|
|
- `defineModel(modelDef: object): this` - добавить модель
|
|
|
- `getRepository(modelName: string): Repository` - получить репозиторий
|
|
|
|
|
|
+Далее определяется источник данных в котором указывается уникальное
|
|
|
+название и используемый адаптер.
|
|
|
+
|
|
|
+```js
|
|
|
+schema.defineDatasource({
|
|
|
+ name: 'myMemory', // название нового источника
|
|
|
+ adapter: 'memory', // выбранный адаптер
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+После определения источника можно добавить модель данных, которая описывает
|
|
|
+структуру документа. Представим коллекцию `city` с двумя полями, где строковое
|
|
|
+поле `name` в качестве названия города и `population` как объем его населения.
|
|
|
+
|
|
|
+```js
|
|
|
+schema.defineModel({
|
|
|
+ name: 'city', // название модели
|
|
|
+ datasource: 'myMemory', // выбранный источник
|
|
|
+ properties: {
|
|
|
+ name: DataType.STRING, // поле типа "string"
|
|
|
+ population: DataType.NUMBER, // поле типа "number"
|
|
|
+ },
|
|
|
+});
|
|
|
+```
|
|
|
+
|
|
|
+Модель гарантирует, что тип указанных полей будет проверен перед записью
|
|
|
+в коллекцию. Осталось получить репозиторий данной модели для чтения и записи
|
|
|
+документов.
|
|
|
+
|
|
|
+```js
|
|
|
+// получаем репозиторий модели "city"
|
|
|
+const cityRep = schema.getRepository('city');
|
|
|
+
|
|
|
+// добавляем новый документ
|
|
|
+const city = await cityRep.create({
|
|
|
+ name: 'Moscow',
|
|
|
+ population: 11980000,
|
|
|
+});
|
|
|
+
|
|
|
+// выводим результат
|
|
|
+console.log(city);
|
|
|
+// {
|
|
|
+// "id": 1,
|
|
|
+// "name": "Moscow",
|
|
|
+// "population": 11980000
|
|
|
+// }
|
|
|
+```
|
|
|
+
|
|
|
## Источник данных
|
|
|
|
|
|
Источник определяет используемый адаптер и его настройки, которые передаются
|