我想使用 mongoose 中间件挂钩重新尝试保存文档,以防初始保存因重复键错误而失败。用例如下:
我的模型使用自动生成的 slug 进行识别。例如item
, item-2
, item-3
, ..., item-n
。如果item
已经存在,则应在 slug 中添加一个计数器。我无法提前检查“下一个”slug,因为我需要在任何情况下避免冲突。
由于这个逻辑会涉及到几个不同的模型,我想把它隔离成一个猫鼬插件。
这个想法可能吗?例如schema.post('save', handler)
,仅在成功保存时执行。还有其他可以利用的钩子吗?