首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >猫鼬模型使用id属性的危险性?

猫鼬模型使用id属性的危险性?
EN

Stack Overflow用户
提问于 2015-10-16 20:24:17
回答 1查看 591关注 0票数 1

这里的数据库设计决策--没有其他方法可以做到--只是对专家进行调查。

我们使用的是带有Node.js快递的猫鼬ODM。MongoDB在包含每个文档唯一对象_id的模型上使用_id作为默认属性。

我们使用的是一个自动增量器,它为每个模型提供整数ids。我们想把这个字段称为'id‘,这将补充'_id’字段。

我担心的是,使用“id”字段会引起问题的风险很小。有没有人在他们所有的猫鼬模型中使用“id”作为整数id时有过正或负的经验?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-16 21:03:03

是的,小心点。默认情况下,猫鼬会向模型中添加一个名为"id"的虚拟属性。此虚拟属性将强制转换返回到_id属性的字符串。

如果您真的想向模型中添加一个真实属性"id",您必须使用new Schema()调用中的选项:{id: false}关闭这个自动虚拟:

代码语言:javascript
复制
new Schema({name: String, id: int}, {id: false})

请注意,即使这是可能的,当每个开发人员通过这样做阅读您的代码时,他也会混淆熟悉猫鼬的开发人员。

也许最好以不同的方式称呼你的财产。

或者当您创建这个增量id作为您的主键时,也许您可以将它直接分配给_id,因为这样可能就不需要生成额外的ObjectId了.然后id属性将自动将整数作为字符串返回。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33178977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档