谁生成Mongodb _id(ObjectId)字段的值?

时间:2018-08-03 08:32:11

标签: mongodb mongoose

如果我直接与mongodb客户或Mongoose插入文档,谁负责生成_id字段的值?是在数据库引擎内部发生还是由客户端来完成工作?

1 个答案:

答案 0 :(得分:1)

  

在MongoDB中,存储在集合中的每个文档都需要一个唯一的_id字段作为主键。如果插入的文档省略了_id字段,则MongoDB驱动程序会为ObjectId字段自动生成一个_id

  

注意
  大多数MongoDB驱动程序客户端将包含_id字段,并在将ObjectId操作发送到MongoDB之前生成一个insert;但是,如果客户端发送的文档中没有_id字段,则mongod将添加_id字段并生成ObjectId

https://docs.mongodb.com/manual/core/document/index.html#the-id-field