是啥在 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?的主要内容,如果未能解决你的问题,请参考以下文章

“;”的目的是啥在 for 循环结束时?

如何确定是啥在重置我的连接?

如何指出是啥在线程转储文件中将线程置于 WAITING 状态

azure cosmos db 在 mongodb.com 中创建了集合

azure cosmos db 在 mongodb.com 中创建了集合

在 mongodb 上构建多个权限组的最佳方法是啥?