use person //创建数据库或进入数据库
db.createCollection(table_name)
主键
插入数据时会自动生成主键,保证每条数据唯一性
- 生成对象主键
> ObjectId()
ObjectId("6163fb2ffaca91ed57d6c202")
2.查询ObjectId的创建时间
> ObjectId("6163fb2ffaca91ed57d6c202").getTimestamp()
ISODate("2021-10-11T08:51:59Z")
3.ObjectId类型
ObjectId类型是一个12个字节字符串
6163fb2f - faca9 1 - ed57 - d6c202
- 4字节是存储这条数据的时间戳
- 3字节是存储这条数据电脑的标识符
- 2字节是存储这条数据的MongoDB进程id
- 3字节是计数器
4.主键值为什么不是自增长
因为MongoDB是支持横向扩展
的数据库,分布式数据库
a)横向扩展
是指增加数据库服务器的台数
b)纵向扩展
是指增加数据库服务器的配置
注
:除了数组类型
,其它类型数据都可作为主键
db.person.insert({_id:1})
db.person.insert({_id:”2”})
5.5)复合主键
可以使用文档作为文档主键
db.test.insert(
{
_id:{accountNo:”001”,type:”savings”},
name:”irene”,
balance:80
}
)
注:主键是唯一的,相同的文档主键在次插入会报错,但文档中的字段顺序不同则插入成功