@rodger.botsford
Mongoose предоставляет возможность использовать события, которые могут помочь вам реализовать определенную логику при работе с базой данных MongoDB. Вот несколько примеров того, как использовать события в Mongoose:
1 2 3 4 5 6 7 8 |
const schema = new mongoose.Schema({ name: String }); schema.post('save', function(error, doc, next) { if (error.name === 'MongoError' && error.code === 11000) { next(new Error('There was a duplicate key error')); } else { next(error); } }); |
1 2 3 4 5 6 7 8 |
const schema = new mongoose.Schema({ name: String, author: { type: mongoose.Schema.Types.ObjectId, ref: 'Author' } }); schema.post('remove', function(doc, next) { this.model('Author').update({ _id: doc.author }, { $pull: { books: doc._id }}, next); }); |
1 2 3 4 5 6 7 8 9 10 11 12 |
const schema = new mongoose.Schema({ name: String, age: Number }); schema.pre('save', function(next) { if (this.age < 18) { next(new Error('You must be at least 18 years old to create an account')); } else { next(); } }); |
Это только несколько примеров того, как можно использовать события в Mongoose. Список событий, которые можно использовать, можно найти в официальной документации Mongoose.