Guest User

Untitled

a guest
Jan 22nd, 2018
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.89 KB | None | 0 0
  1. const mongoose = require('mongoose');
  2. mongoose.Promise = global.Promise;
  3.  
  4. const schema = new mongoose.Schema({
  5. requiredAttribute: {
  6. type: String,
  7. required: true
  8. },
  9. optionalAttribute: {
  10. type: String,
  11. required: false
  12. }
  13. });
  14.  
  15. schema.pre('remove', function(done) {
  16. console.log('pre Remove 1!')
  17. done();
  18. })
  19.  
  20. schema.post('remove', function() {
  21. console.log('post Remove 1!')
  22. })
  23.  
  24. schema.pre('findOneAndRemove', function(done, doc) {
  25. console.log('pre Remove 2!')
  26. done();
  27. })
  28.  
  29. schema.post('findOneAndRemove', function(doc) {
  30. console.log('post Remove 2!')
  31. })
  32.  
  33.  
  34. const DummyModel = mongoose.model('DummyModel', schema, 'dummyModels');
  35.  
  36. mongoose.connect('mongodb://localhost:27017/users-service-test', { useMongoClient: true })
  37. .then(() => {
  38. const model = new DummyModel({ requiredAttribute: 'something' })
  39. return model.save();
  40. })
  41. .then((result) => {
  42. console.log('Using instance.remove, should call the Docucment Middlewares')
  43. return result.remove();
  44. })
  45. .then((result) => {
  46. return DummyModel.find({})
  47. })
  48. .then((result) => {
  49. console.log('Existing models', result);
  50.  
  51. const model = new DummyModel({ requiredAttribute: 'something' })
  52. return model.save();
  53. })
  54. .then((result) => {
  55. console.log('Using class.remove, should call the Query Middlewares ???')
  56. DummyModel.remove({ _id: result.id }).exec();
  57. })
  58. .then(() => {
  59. return DummyModel.find({})
  60. })
  61. .then((result) => {
  62. console.log('Existing models', result);
  63. const model = new DummyModel({ requiredAttribute: 'something' })
  64. return model.save();
  65. })
  66. .then((result) => {
  67. console.log('Using class.findOneAndRemove, should call the Query Middlewares')
  68. return DummyModel.findOneAndRemove({ _id: result.id }).exec();
  69. })
  70. .then(() => {
  71. return DummyModel.find({})
  72. })
  73. .then((result) => {
  74. console.log('Existing models', result);
  75. console.log('... That didn\'t go well ...')
  76. })
Add Comment
Please, Sign In to add comment