English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ObjectId MongoDB

En los capítulos anteriores, hemos estado utilizando MongoDB ObjectId. En este capítulo, aprenderemos sobre la estructura de ObjectId.

ObjectId es12El tipo de BSON del byte, con la siguiente estructura-

  • Antes4Un byte representa los segundos desde el nuevo período unix

  • Los siguientes3Un byte es el identificador de la máquina

  • Los siguientes2Un byte está compuesto por el id de proceso

  • Finalmente3Un byte es un valor de contador aleatorio

MongoDB utiliza ObjectIds como_idEl valor predeterminado de cada campo de documento, que se genera al crear cualquier documento. La combinación compleja de ObjectId asegura que todos los campos _id sean únicos.

Crear un nuevo ObjectId

Para generar un nuevo ObjectId, utilice el siguiente código-

>newObjectId = ObjectId()

La siguiente declaración devuelve el siguiente id generado de manera única-

ObjectId("5349b4ddd2781d08c09890f3")

Además de proporcionar ObjectId generado por MongoDB, también puede proporcionar12ID en bytes-

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

Timestamp de creación del documento

Dado que _id ObjectId se almacena por defecto4Timestamp en bytes, por lo que en la mayoría de los casos, no es necesario almacenar la fecha y hora de creación de cualquier documento. Puede obtener la fecha y hora de creación del documento utilizando el método getTimestamp-

>ObjectId("5349b4ddd2781d08c09890f4).getTimestamp()

Esto devolverá la fecha y hora de creación del documento en formato ISO-

ISODate("2014-04-12T21:49:17Z")

Convertir ObjectId a String

En algunos casos, es posible que necesite valores ObjectId en formato de cadena. Para convertir ObjectId a formato de cadena, utilice el siguiente código-

>newObjectId.str

El código siguiente devolverá el formato de cadena de Guid-

5349b4ddd2781d08c09890f3