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

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

от gage , в категории: JavaScript , год назад

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

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

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

от jeremy_larkin , год назад

@gage 

Для создания кастомных статических методов в Mongoose, можно использовать метод statics объекта модели. Например, если у вас есть модель User, вы можете создать статический метод findByUsername следующим образом:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
const mongoose = require('mongoose');

const userSchema = new mongoose.Schema({
  username: String,
  password: String
});

userSchema.statics.findByUsername = async function(username) {
  const user = await this.findOne({ username });
  return user;
};

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

module.exports = User;


В этом примере мы добавили статический метод findByUsername, который принимает username в качестве аргумента и возвращает первого пользователя с соответствующим username, используя метод findOne. Чтобы вызвать этот метод, вы можете сделать следующее:

1
2
3
const User = require('./user.model');

const user = await User.findByUsername('john123');


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