数据库设计决策在这里和那里没有别的方法可以做到这一点,但在SO上对专家进行了调查。
我们正在使用带有Node.js Express的Mongoose ODM。 MongoDB使用_id作为模型的默认属性,这些模型保存每个文档唯一的ObjectID。
我们使用的是自动增量器,它为每个模型提供整数ID。我们想将此字段称为“id”,它将补充“_id”字段。
我担心的是,使用'id'字段会产生问题。是否有人在所有Mongoose模型上使用'id'作为整数id的经验是积极的还是消极的?
答案 0 :(得分:1)
"id"
的虚拟属性。此虚拟属性将强制转换返回到_id属性的String。
如果您确实要在模型中添加不动产"id"
,则必须使用{id: false}
来电中的new Schema()
选项关闭此自动虚拟广告:
new Schema({name: String, id: int}, {id: false})
请注意,即使这样可能会让每个知道猫鼬的开发人员在阅读代码时感到困惑。
也许最好用不同的方式打电话给你的财产。
或者当你创建这个递增id作为你的主键时,也许你可以直接将它分配给_id,因为那时可能无需生成额外的ObjectId ...然后id属性会自动返回你的整数一个字符串。