Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const mongoose = require('mongoose');
- mongoose.Promise = global.Promise;
- const schema = new mongoose.Schema({
- requiredAttribute: {
- type: String,
- required: true
- },
- optionalAttribute: {
- type: String,
- required: false
- }
- });
- schema.pre('remove', function(done) {
- console.log('pre Remove 1!')
- done();
- })
- schema.post('remove', function() {
- console.log('post Remove 1!')
- })
- schema.pre('findOneAndRemove', function(done, doc) {
- console.log('pre Remove 2!')
- done();
- })
- schema.post('findOneAndRemove', function(doc) {
- console.log('post Remove 2!')
- })
- const DummyModel = mongoose.model('DummyModel', schema, 'dummyModels');
- mongoose.connect('mongodb://localhost:27017/users-service-test', { useMongoClient: true })
- .then(() => {
- const model = new DummyModel({ requiredAttribute: 'something' })
- return model.save();
- })
- .then((result) => {
- console.log('Model created', result)
- console.log('Using instance.remove, should call the Docucment Middlewares')
- return result.remove();
- })
- .then((result) => {
- return DummyModel.find({})
- })
- .then((result) => {
- console.log('Existing models', result);
- const model = new DummyModel({ requiredAttribute: 'something' })
- return model.save();
- })
- .then((result) => {
- console.log('Model created', result)
- console.log('Using class.remove, should call the Query Middlewares ???')
- DummyModel.remove({}).exec();
- })
- .then(() => {
- return DummyModel.find({})
- })
- .then((result) => {
- console.log('Existing models', result);
- const model = new DummyModel({ requiredAttribute: 'something' })
- return model.save();
- })
- .then((result) => {
- console.log('Model created', result)
- console.log('Using class.findOneAndRemove, should call the Query Middlewares')
- return DummyModel.findOneAndRemove({ _id: result.id }).exec();
- })
- .then(() => {
- return DummyModel.find({})
- })
- .then((result) => {
- console.log('Existing models', result);
- })
Add Comment
Please, Sign In to add comment