利用 Mongoose 自定义 ID 解析:如何生成自定义主键

在某些应用程序中,MongoDB 的自动生成 _id 可能不能满足需求,可能需要开发人员自己生成主键。Mongoose 提供了一种方法来使用自定义 ID,这里将介绍如何利用 Mongoose 自定义 ID,包括生成自定义主键和实现自定义主键的解析。

生成自定义主键

自定义生成主键需要向 MongoDB 发送一个 insert 命令,Mongoose 方便开发人员自定义 ID 的方法就是通过执行 pre hook,在保存模型实例之前修改 _id 属性。下面提供了一种用随机数生成自定义 ID 的示例代码:

实现自定义主键的解析

生成自定义主键后,Mongoose 默认不知道要使用哪个方法来解析它,需要手动告诉 Mongoose 解析方法。下面提供了一种用随机数生成自定义 ID 并实现解析的示例代码:

在这个示例代码中,我们添加了一个 findById 静态方法来解析自定义 ID,用类似 find 的方式调用。执行 CustomId.findById(newCustomId._id, callback) 内部实际上是调用了 this.findOne({ _id: id }, callback) , 这里的 id 参数就是传入的随机生成的自定义 ID。

总结

在应用程序中,MongoDB 的自动生成 _id 不一定满足需求,如有需要,可以通过 Mongoose 提供的 pre hook 方法来实现自定义 ID。示例代码演示了生成自定义主键和提供解析方法的步骤。此外,还可以根据应用的实际需求,在 pre hook 中实现更加丰富的主键生成方法,如引用其他字段、将时间戳转换为字符串等。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/652bba127d4982a6ebd991f4


纠错
反馈