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