_id 是mongoDB中唯一的主键,MongoDB中存储的文档必须有一个”_id”键, 无论用户是否设置都将自动生成,其类型为ObjectId. 在一个集合里面,每个文档都有唯一的”_id”值,来确保集合里面每个文档都能被唯一标识。
ObjectId 是一个12字节 BSON 类型数据,有以下格式:
前4个字节表示时间戳
接下来的3个字节是机器标识码
紧接的两个字节由进程id组成(PID)
最后三个字节是随机数。
0|1|2|3 | 4|5|6 | 7|8 | 9|10|11
时间戳 | 机器 | PID | 计数器
在使用MongoTemplate 保存数据的时候,如果数据源中数据的_id已经存在,则会更改原有的数据,如果不存在则进行新增操作。
如果自己设置数据链接池,则如果数据中的_id在数据库中已存在,则不能进行保存操作,否则会产生错误。