MongoDB-_id字段的含义介绍

MongoDB中的主键无需明确指定,每一条记录被添加到集合之后, MongoDB都会自动添加主键,MongoDB中文档主键的名称叫做 _id,是一个ObjectId类型的数据,格式如下:

study> db.user.find()
[ { _id: ObjectId("62c44b4d5604b99daa91103e"), name: '小博' } ]

数一下_id这个字段的长度,我们发现一共有24位,我们将_id字段的内容拆分成4部分去分别看其对应的含义:

62c44b4d  5604b9  9daa  91103e

1-8位字符:插入数据的时候对应的时间戳

9-14位字符:代表主机的唯一标识符,一般是机器主机名的散列值。具体这个值怎么来的,我目前也没有摸清楚

15-18位字符:产生ObjectId的PID

19-24位:计数器

插入两条数据,然后检查下对应某些位数的值是否一致:

db.getCollection("user").insert({
    "name": "张三",
    "age": 28,
    "height": 180
})


db.getCollection("user").insert({
    "name": "李四",
    "age": 29,
    "height": 178
})

查看数据库里面的数据:

bdacdc115845727dba38e1ee22289b2b.png

以_id = 62c6fdb6e3a9741ea11d9883为例,1-8位为62c6fdb6,将16进制转换为1657208246,这个就是对应的数据插入的时间,转换为时间格式后为:

6cd5483cd39fe5ace4f9e5f567985d7b.png

_id字段虽然为系统自动生成的一个唯一标识,但是,用户也可以自定义这个id的值:

db.getCollection("user").insert({
    "_id":"1", 
   "name": "大刀王五",
    "age": 29,
    "height": 178
})

插入之后的效果:

d07e7289f85212d9e65d39cf2668874f.png

往期推荐

MongoDB-MongoDB简介

MongoDB-通过docker搭建一个用来练习的mongodb数据库

MongoDB-在windows电脑本地安装一个mongodb的数据库

MongoDB-使用mongo/mongosh命令行连接数据库

MongoDB-快速上手MongoDB命令行的一些简单操作

关注我,一起学习MongoDB的一些基本用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小博测试成长之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值