Navicat使用教程:关于MongoDB的_id字段

翻译|使用教程|编辑:莫成敏|2019-12-03 14:04:53.290|阅读 809 次

概述:实际上,ObjectId / _id是每个MongoDB文档中唯一的字段。在今天的文章中,我们将探讨它的含义以及它对MongoDB数据库的重要性。

# 您正在找协同办公软件吗?点击这里站长给您推荐 #

相关链接:

Navicat Premium是一个数据库开发工具,可让您从单个应用程序同时连接到MySQL,MariaDB,MongoDB,SQL Server,Oracle,PostgreSQL和SQLite数据库。与Amazon RDS,Amazon Aurora,Amazon Redshift,Microsoft Azure,Oracle Cloud,Google Cloud和MongoDB Atlas等云数据库兼容。

在线订购  试用下载

在MongoDB数据库中打开任何文档,您会注意到_id字段:

Navicat使用教程:关于MongoDB的_id字段

实际上,ObjectId / _id是每个MongoDB文档中唯一的字段。在今天的文章中,我们将探讨它的含义以及它对MongoDB数据库的重要性。

ObjectId的结构

作为一个快速、开发的总结,以下是_id的一些主要特征:

  • _id是集合中文档的主键;有了它,文档(记录)可以彼此区分。

  • _id自动索引。指定{_id:

  • 默认情况下,_id字段的类型为ObjectID,是MongoDB的BSON类型之一。如果需要,用户还可以将_id覆盖为ObjectID以外的其他值。

ObjectID的长度为12个字节,由2-4个字节的链组成。每个链代表并指定文档标识的特定方面。以下值组成完整的12个字节的组合:

  • 一个4字节的值,表示自Unix时代以来的秒数

  • 一个3字节的机器标识符

  • 一个2字节的进程ID

  • 以随机值开头的3字节计数器

Navicat使用教程:关于MongoDB的_id字段

通常,您不必担心生成ObjectID。如果未为文档分配_id值,MongoDB将自动生成一个。

创建新的ObjectId

如果要自己生成一个新的ObjectId,则可以使用以下代码:

newObjectId = ObjectId()

您也可以直接在Navicat编辑器中键入它。

这将生成一个唯一的_id,例如:

ObjectId(“ 5349b4ddd2781d08c09890f3”)

或者,您可以提供一个12字节的ID:

myObjectId = ObjectId(“ 5349b4ddd2781d08c09890f4”)

创建文档的时间戳

由于_id ObjectId默认情况下存储4字节的时间戳,因此在大多数情况下,您不需要存储任何文档的创建时间。您可以使用getTimestamp方法获取文档的创建时间:

ObjectId(“ 5349b4ddd2781d08c09890f4”)。getTimestamp()

这将以ISO日期格式返回此文档的创建时间

ISODate(“ 2019-09-12T30:39:17Z”)

将ObjectId转换为String

在某些情况下,您可能需要字符串格式的ObjectId值。若要将ObjectId转换为字符串,请使用以下代码:

newObjectId.str

上面的代码将返回Guid的字符串格式:

5349b4ddd2781d08c09890f3

文档分类

由于每个ObjectId都包含一个时间戳,因此您可以按_id对文档进行排序,也可以按创建时间对文档进行排序。但是,请务必注意,此排序方法并不代表严格或精确的排序,因为ID的其他组件可能会起作用,导致该命令反映的不仅仅是创建时间,还反映了其他变量。

更改ObjectId

_id字段基本上是不可变的,因此,在创建文档后,根据定义,它已分配了_id,该ID不能更改。话虽如此,插入新文档时_id可以被覆盖。覆盖文档的_id字段可能很有用,但是这样做时,您有责任确保每个文档的值都是唯一的。

结论

MongoDB的_id字段在每个MongoDB集合中都起着至关重要的作用。因此,了解如何创建以及何时覆盖它对于管理集合非常有用。您可以下载Navicat Premium试用版评估一下~

相关内容推荐:

Navicat使用教程>>>


想要购买产品正版授权请点击“在线订购”,或了解更多产品信息请点击“咨询在线客服”

04-850x68.png



标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,尊重他人劳动成果

文章转载自:Navicat https://www.navicat.com/en/company/aboutus/blog/1010-all-about-mongodb-s-_id-field.html

登录 慧都网发表评论


暂无评论...

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
相关厂商
相关产品
Navicat for MySQL

Navicat for MySQL 是一套管理和开发 MySQL 或 MariaDB 的理想解决方案。

Navicat for PostgreSQL

Navicat for PostgreSQL是一套专为PostgreSQL设计的强大数据库管理及开发工具

Navicat for Oracle

Navicat for Oracle是一套超强的Oracle数据库系统管理工具,包括数据模型工具、数据或结构同步、导入或导出、和报表,令维护数据的进程更容易。

Navicat Premium

Navicat Premium 是一套数据库管理工具,让你使用一个程序即可同時连接到 MySQL、MariaDB、SQL Server、SQLite、Oracle 和 PostgreSQL 数据库。

Navicat for SQL Server

Navicat for SQL Server 是一套专为 Mircosoft SQL Server设计的强大数据库管理及开发工具

Navicat for SQLite

Navicat for SQLite 是一套专为SQLite 设计的强大数据库管理及开发工具

Navicat Data Modeler

Navicat Data Modeler是一款数据建模图形化工具,为创建数据建模带来一种全新的体验。

Navicat Essentials

Navicat Essentials是一个小型版本的 Navicat,提供了数据库管理的基本和必需功能。

Navicat for MariaDB

Navicat for MariaDB 为 MariaDB 数据库管理提供了一个原生环境。你可以直观地设计数据库结构、运行 SQL 查询和脚本、管理 MariaDB 用户及其权限。

Navicat Report Viewer

Navicat Report Viewer 是一款Navicat Report Builder查看器,可以浏览由Navicat Report Builder创建设计的报表文件。

Navicat Monitor

安全、简单而且无代理的远程服务器监控工具。

在线
客服
咨询
电话
400-700-1020
在线
QQ
购物车 反馈 返回
顶部