如何在创建猫鼬模型时保存记录?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在创建猫鼬模型时保存记录?相关的知识,希望对你有一定的参考价值。

我正在使用mongoose在Node.js / Express上的Web应用程序上工作,并且应该在数据库中内置一个管理员用户,因此我每次发布时都不会被迫用curl或其他方式创建它因此,我想知道是否有类似oncreate的钩子仅在创建时才用记录初始化数据库。

答案

可以在Web服务初始化期间插入管理员帐户,以使即使多次执行查询,也只会创建一个带有管理员用户名的文档。可以使用upsert查询创建文档:

await administratorModel.update(
  // These are the document properties for the admin model
  username: "admin"
, 
  // This is the filter that mongoose will query if is satisfied in the db
  username: “admin”
,  
  // If the document didn't exist in the db, 'upsert' tells mongoose to insert it 
  upsert: true 
)

猫鼬文档:Model.update()

以上是关于如何在创建猫鼬模型时保存记录?的主要内容,如果未能解决你的问题,请参考以下文章

猫鼬密码哈希

保存时使用字符串作为猫鼬模型的自定义 ID

从精益查询的结果创建猫鼬模型

如何测试猫鼬预钩“保存”和bcryptjs

循环依赖检测到猫鼬错误

猫鼬如何在模型中设置日期格式