# Модели в Mongoose

Модель в Mongoose - представление коллекции с MongoDB в вашем коди.

Модель используется для:

* осуществление create/read/update/delete (CRUD) операций с коллекцией&#x20;
* валидация CRUD операций&#x20;
* автоматическая генерация схемы коллекции с вашего кода&#x20;
* и т. д.

Создание модели в Mongoose:

```
// 'users'

const Author = mongoose.model('User', userSchema); // schema from previous slide‌
```

Создание нового документа:

```
async function createAuthor() {
    const author = await Author.create({
        first_name: 'Test',
        last_name: 'Testov',
        email: 'example@email.com',
        age: 20,
    });

    return author;
}
```

Обновление документа/документов по критерию:

```
async function updateAuthor() {
    await Author.updateOne({
        email: 'example@email.com'
    }, {
        $set: { first_name: 'Test update' }
    });
}
```

&#x20;Поиск документа/документов:

```
async function findAuthor() {
    const author = await Author.findOne({ email: 'example@email.com' });
    return author;
}
```

Удаление документа:

```
async function deleteAuthor() {
    await Author.deleteOne({ email: 'example@email.com' });
}
```
