ramiel / mongoose-sequence

Sequence and autoincrement handling for mongoose
GNU General Public License v2.0
283 stars 56 forks source link

Increate the count only when creation success. #99

Open cwang1221 opened 3 years ago

cwang1221 commented 3 years ago

Dear Experts,

I found the count is increased no matter if the creation of the document success or not. E.g.

  1. I create a new user, the count will be 1
  2. I try to create the second user, but since I give a duplicate key to it, the creation failed (err.name === "MongoError" && err.code === 11000)
  3. I create a new user, the count is 3, but actually it should be 2.

Any idea on this? Thank you so much!

ramiel commented 3 years ago

Yes the hook used is a pre-save hook, so the counter is incremented before the document is actually saved. This is safer than a post hook and better mimic the SQL behavior. At the moment there's no option to use a post hook but you can use a workaround. You can disable hooks completely and run manual increment by yourself. See the disable_hooks options and the manual increment documentation