开发者社区> 问答> 正文

mongoose中自建的_id是怎么生成的?

从官方mongoose v3.8.7的手册中看到关于Schema的_id属性,发现这个属性在new一个模型的时候就已经生成了,这个时候根本就没有和MongoDB通信!
我好奇mongoose是如何生成这个_id的值的,它能保证唯一性么?
另外,官方提到可以关闭这个特性,但是
screenshot
实际测试发现根本就不会save成功,会提示:
screenshot
请问如何关闭_id后实现保存?

展开
收起
蛮大人123 2016-02-14 11:02:24 3285 0
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    这个_id 默认是ObjectId 他就是mongodb原生驱动创建的. 所以按你的需求,你直接就用mongoose生成的这个_id就好, mongoose只是扩展了一些方法而已.. 关于 native ObjectId 你可以看看这个介绍.https://docs.mongodb.org/manual/reference/method/ObjectId/
    每个document都必须有一个_id 而且不能重复.
    你关掉这个特性 你就得自己制造一个_ID
    所以,你当然保存不了.

    2019-07-17 18:42:29
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载