Mongoose模型使用id属性的危险?
数据库devise决策在这里,没有其他的方式来做到这一点,但在SO上投票专家。
我们正在使用Mongoose ODM和Node.js Express。 MongoDB使用_id作为保存每个文档唯一的ObjectID的模型的默认属性。
我们正在使用一个自动增量,它给每个模型的整数ID。 我们要调用这个字段'id',这将补充'_id'字段。
我担心的是,使用'id'字段会带来问题的风险很小。 有没有人有经验积极或消极的使用“id”整数ids所有他们的mongoose模型?
是的,要非常小心。 Mongoose默认添加一个名为"id"
的虚拟属性到你的模型中。 此虚拟属性将强制转换为_id属性的String。
如果你真的想添加一个真实的属性"id"
到你的模型中,你必须使用new Schema()
调用中的选项{id: false}
来closures这个自动虚拟:
new Schema({name: String, id: int}, {id: false})
要知道,即使这样做可能会让每个知道mongoose的开发人员在阅读代码时都感到困惑。
也许更好地调用你的财产不同。
或者,当你创build这个递增的ID作为主键,也许你可以直接把它分配给_id,因为那么可能不需要生成额外的ObjectId,然后id属性会自动返回你的整数作为一个string。