是啥在 mongodb 中创建了默认的 ObjectID?
Posted
技术标签:
【中文标题】是啥在 mongodb 中创建了默认的 ObjectID?【英文标题】:what creates the default ObjectID in mongodb?是什么在 mongodb 中创建了默认的 ObjectID? 【发布时间】:2017-11-06 11:02:27 【问题描述】:对 MongoDB 很陌生。浏览文档。
来自https://docs.mongodb.com/manual/reference/method/db.collection.insert/#id-field 如果文档没有指定 _id 字段,那么 MongoDB 将添加 _id 字段并在插入之前为文档分配唯一的 ObjectId。大多数驱动程序会创建一个 ObjectId 并插入 _id 字段,但如果驱动程序或应用程序不这样做,mongod 将创建并填充 _id。
这里说 MongoDB 将创建 _id。
来自https://docs.mongodb.com/manual/reference/method/db.collection.save/?_ga=2.24854906.1181826191.1496665143-146886871.1493019056#save-a-new-document-without-specifying-an-id-field 在插入过程中,shell 将创建具有唯一 ObjectId 值的 _id 字段,正如插入的文档所验证的那样。
在这里,它说的是 Mongo shell。
是创建默认 ObjectID 还是 mongod 的 mongo shell?希望有人能澄清一下!
【问题讨论】:
【参考方案1】:如果客户端不提供_id
,MongoDB 服务器会提供。 shell 只是另一种类型的客户端。它为插入的文档提供_id
,因此服务器不需要。但其他驱动程序/客户端可能不会,因此在这些情况下服务器会这样做。
【讨论】:
【参考方案2】:如果客户端没有为文档创建Id,mongo服务器会在创建新文档时创建_id。
【讨论】:
以上是关于是啥在 mongodb 中创建了默认的 ObjectID?的主要内容,如果未能解决你的问题,请参考以下文章
如何指出是啥在线程转储文件中将线程置于 WAITING 状态
azure cosmos db 在 mongodb.com 中创建了集合