我知道,如果没有给出 ObjectID,Mongoose 会自动使用 ObjectID 填充 _id 字段,并且您可以在构建模型和实例时覆盖 _id。
我想要的是:以透明的方式从其他字段创建 _id。我想在创建模型实例时省略 _id 字段,然后调用一个函数来填充它。该函数应该在 Schema 级别上声明,并且使用该模型的任何人都不知道 _id 是由函数而不是 Mongoose 填充的。
我错过了 Schema 构造函数的钩子或参数吗?
猫鼬 3.0.x
让我们更具体一点。想象一下BlogPost
,我想通过 slugging 标题来创建漂亮的 URL。为了将 slug 映射到 Mongo 对象,我对 slug 进行哈希处理并将其转换为 aObjectID
以利用它的好处。现在我正在寻找的是一个透明的方法,它允许我BlogPost
只通过传入来创建一个实例title
并自动生成slug
and属性。_id