Spec-Zone.ru › Mongoose

Модели

Модели — это стильные конструкторы, скомпилированные из наших Schema определений. Экземпляры этих моделей представляют документы, которые можно сохранять и извлекать из нашей базы данных. Все создание документов и извлечение из базы данных обрабатывается этими моделями.

Создание вашей первой модели

var schema = new mongoose.Schema({ name: 'string', size: 'string' });
var Tank = mongoose.model('Tank', schema);

Первый аргумент — это единственное имя коллекции, для которой предназначена ваша модель. Mongoose автоматически ищет множественное число от имени вашей модели. Таким образом, для приведённого выше примера модель Tank предназначена для коллекции tanks в базе данных. Функция .model() создаёт копию schema. Убедитесь, что вы добавили всё необходимое в schema перед вызовом .model()!

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

Документы — это экземпляры нашей модели. Их создание и сохранение в базе данных очень просто:

var Tank = mongoose.model('Tank', yourSchema);

var small = new Tank({ size: 'small' });
small.save(function (err) {
  if (err) return handleError(err);
  // saved!
})

// or

Tank.create({ size: 'small' }, function (err, small) {
  if (err) return handleError(err);
  // saved!
})

Обратите внимание, что никакие танки не будут созданы/удалены до тех пор, пока соединение, используемое вашей моделью, не будет открыто. Каждая модель имеет связанное с ней соединение. Когда вы используете mongoose.model(), ваша модель будет использовать стандартное соединение mongoose.

mongoose.connect('localhost', 'gettingstarted');

Если вы создаёте пользовательское соединение, используйте функцию model() этого соединения вместо этого.

var connection = mongoose.createConnection('mongodb://localhost:27017/test');
var Tank = connection.model('Tank', yourSchema);

Запросы

Поиск документов очень прост с помощью Mongoose, который поддерживает богатый синтаксис запросов MongoDB. Документы могут быть извлечены с помощью каждого models статического метода find, findById, findOne или where.

Tank.find({ size: 'small' }).where('createdDate').gt(oneYearAgo).exec(callback);

См. главу по запросам для получения более подробной информации о том, как использовать API Query.

Удаление

Модели имеют статический метод remove для удаления всех документов, соответствующих conditions.

Tank.remove({ size: 'large' }, function (err) {
  if (err) return handleError(err);
  // removed!
});

Обновление

У каждой model есть собственный метод update для изменения документов в базе данных без возврата их вашему приложению. См. документацию API для более подробной информации.

Если вы хотите обновить один документ в базе данных и вернуть его в ваше приложение, используйте findOneAndUpdate вместо этого.

Ещё

Документация API охватывает множество дополнительных методов, таких как count, mapReduce, aggregate и ещё.

Далее

Теперь, когда мы рассмотрели Models, давайте посмотрим на Документы.

© 2010 LearnBoost
Licensed under the MIT License.
https://mongoosejs.com/docs/4.x/docs/models.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API