Descripción
ObjectId(<value>)Importante
Método mongosh
Esta página documenta un método.
mongoshEsta no es la documentación de un controlador específico de un lenguaje, como Node.js.Para los drivers de API de MongoDB, consulte la documentación del driver de MongoDB específica del lenguaje.
Devuelve un nuevo ObjectId. El ObjectId de 12 bytes se compone de:
Una marca de tiempo de 4 bytes, que representa la creación del ObjectId, medida en segundos desde la Unix epoch.
Un valor aleatorio de 5bytes generado una vez por cada proceso del lado del cliente. Este valor aleatorio es único para la máquina y el proceso. Si el proceso se reinicia o el nodo primario del proceso cambia, este valor se vuelve a generar.
Un contador de 3bytes que se incrementa por cada proceso del lado del cliente, inicializado a un valor aleatorio. El contador se restablece cuando un proceso se reinicia.
Para los valores de marca de tiempo y contador, los bytes más significativos aparecen primero en la secuencia de bytes (big-endian). Esto es diferente de otros valores de BSON, donde los bytes menos significativos aparecen primero (little-endian).
Si se utiliza un valor entero para crear un ObjectId, el entero reemplaza la marca de tiempo.
Compatibilidad
Puedes usar ObjectId() para implementaciones alojadas en los siguientes entornos:
- MongoDB Atlas: El servicio totalmente gestionado para implementaciones de MongoDB en la nube
MongoDB Enterprise: La versión basada en suscripción y autogestionada de MongoDB
MongoDB Community: La versión de MongoDB con código fuente disponible, de uso gratuito y autogestionada.
Sintaxis
ObjectId() puede aceptar una de las siguientes entradas:
Tipo de entrada | Descripción |
|---|---|
| Opcional. Un valor de string hexadecimal de 24 caracteres para el nuevo ObjectId. |
| Opcional. El valor entero, en segundos, se agrega al Unix epoch para crear la nueva marca de tiempo. |
Métodos
ObjectId() tiene los siguientes métodos:
Métodos | Descripción |
|---|---|
Devuelve la parte de marca de tiempo del objeto como una fecha. | |
Devuelve el ObjectId como un string hexadecimal. |
Comportamiento
A partir de MongoDB,5.0 mongosh reemplaza al intérprete de comandos mongo anterior. Los ObjectId() métodos funcionan de manera diferente en mongosh que en el mongo intérprete de comandos anterior. Para obtener más información sobre los métodos anteriores, consulte el intérprete de comandos mongo anterior.
Ejemplos
Generar un nuevo ObjectId
Para generar un nuevo ObjectId, utilice ObjectId() sin argumento:
newObjectId = ObjectId()
En este ejemplo, el valor de newObjectId es:
ObjectId("507f1f77bcf86cd799439011")
Devuelva un string hexadecimal
Para devolver el ObjectId como una string hexadecimal, utiliza el método toString().
ObjectId("507f191e810c19729de860ea").toString()
El método devuelve:
507f191e810c19729de860ea
Especifique una fecha
Puede usar una fecha personalizada para especificar un ObjectId.
Establezca una variable para su fecha especificada
Internamente, los objetos Date se almacenan como un 64entero con signo de 0 bits que representa el número de milisegundos desde la época Unix. Para obtener más información,Date() consulte.
myDate = new Date( "2024-01-01" )
Establezca su nuevo ObjectId con timestamp como argumento
Puede verificar la fecha mediante ObjectId.getTimestamp().
newObjectId = ObjectId(timestamp)
ObjectId("6592008029c8c3e4dc76256c")
Especifique un string de número entero
Si deseas ajustar la marca de tiempo del ObjectId, utiliza un número entero para generar un nuevo ObjectId.
newObjectId = ObjectId(32)
El valor de ObjectId es similar a:
ObjectId("00000020f51bb4362eee2a4d")
El ObjectId del ejemplo se compone de:
Una marca de tiempo de cuatro bytes,
00000020Un elemento aleatorio de cinco bytes,
f51bb4362eUn contador de tres bytes,
ee2a4d
Los primeros cuatro bytes del ObjectId representan el número de segundos transcurridos desde la época Unix. En este ejemplo, la marca de tiempo del ObjectId es,00000020 que 32 en hexadecimal es.
Especifique una string hexadecimal
Si desea utilizar una cadena hexadecimal para especificar un ObjectId, pase un24 valor hexadecimal único de caracteres cuando ObjectId() llame a:
newObjectId = ObjectId("507f191e810c19729de860ea")