Как использовать схемы массивов в Mongoose?

Пользователь

от violette_robel , в категории: JavaScript , 3 месяца назад

Как использовать схемы массивов в Mongoose?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jakayla , 3 месяца назад

@violette_robel 

Схемы массивов в Mongoose позволяют определить модели с полями, которые являются массивами значений. Это позволяет создавать более сложные модели с дополнительными свойствами и функциями, связанными с массивами данных.


Для использования схем массивов в Mongoose вам нужно определить новую схему и добавить в нее поле, являющееся массивом значений. Например, предположим, что вы хотите создать модель для коллекции "Пользователи", которая содержит список любимых цветов каждого пользователя. Вы можете определить схему, которая выглядит следующим образом:

1
2
3
4
5
6
7
const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const userSchema = new Schema({
  name: String,
  favoriteColors: [String]
});


Здесь favoriteColors - это поле-массив, определенное как массив строк ([String]).


После того, как вы определили схему, вы можете создать модель на ее основе, как обычно:

1
const User = mongoose.model('User', userSchema);


Теперь вы можете создавать и сохранять новые объекты User с указанием их любимых цветов:

1
2
3
4
5
6
7
8
9
const newUser = new User({
  name: 'John Doe',
  favoriteColors: ['red', 'green', 'blue']
});

newUser.save(function(err) {
  if (err) throw err;
  console.log('User saved!');
});


Вы также можете обновлять существующие объекты User, добавляя или удаляя элементы из массива favoriteColors:

1
2
3
4
5
6
7
8
9
User.findOne({ name: 'John Doe' }, function(err, user) {
  if (err) throw err;

  user.favoriteColors.push('yellow');
  user.save(function(err) {
    if (err) throw err;
    console.log('User updated!');
  });
});


Таким образом, схемы массивов в Mongoose позволяют создавать более гибкие и мощные модели данных для работы с массивами значений в MongoDB.