Descripción
ObjectId(<value>)Importante
Método mongosh
Esta página documenta una
mongoshMétodo. Esta no es la documentación de un controlador específico del 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 12 ObjectId de bytes consta 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 añade a la época de Unix. 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 el shell heredado mongo. Los métodos ObjectId() funcionan de manera diferente en mongosh que en el shell mongo heredado. Para más información sobre los métodos heredados, consultar el Shell mongo heredado.
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 de fecha se almacenan como un entero con signo de 64bits que representa el número de milisegundos desde la Unix epoch. Para obtener más información, consulte Date().
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 son el número de segundos desde la Unix epoch. En este ejemplo, la marca de tiempo del ObjectId es 00000020, que es 32 en hexadecimal.
Especifique una string hexadecimal
Si desea usar un string hexadecimal para especificar un ObjectId, pase un valor hexadecimal único de 24 caracteres al llamar a ObjectId():
newObjectId = ObjectId("507f191e810c19729de860ea")