开发者社区 问答 正文

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

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

展开
收起
蛮大人123 2016-02-14 11:02:24 3398 分享 版权
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
    赞同 展开评论