Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

ObjectId()

Nesta página

  • Descrição
  • Compatibilidade
  • Sintaxe
  • Métodos
  • Comportamento
  • Exemplos
ObjectId(<value>)

Importante

Método mongosh

Esta página documenta um método mongosh . Esta não é a documentação para um driver específico de idioma, como Node.js.

Para drivers de API do MongoDB, consulte a documentação do driver MongoDB específica do idioma.

Retorna um novo ObjectId. O ObjectId de 12 bytes consiste em:

  • Um carimbo de data/hora de bytes, representando a criação do ObjectID, medido em segundos desde a época do Unix.

  • Um valor aleatório de 5 bytes gerado uma vez por processo. Este valor aleatório é exclusivo da máquina e do processo.

  • Um contador incrementador de 3 bytes, inicializado para um valor aleatório.

Para valores de carimbo de data/hora e contador, os bytes mais significativos aparecem primeiro na sequência de bytes (big-endian). Isto é diferente de outros valores de BSON, onde os bytes menos significativos aparecem primeiro (little-endian).

Se um valor inteiro for usado para criar um ObjectId, o número inteiro substituirá o carimbo de data/hora.

Você pode utilizar o ObjectId() para implantações hospedadas nos seguintes ambientes:

  • MongoDB Atlas: o serviço totalmente gerenciado para implantações MongoDB na nuvem

ObjectId() pode aceitar uma das seguintes entradas:

Tipo de entrada
Descrição
hexadecimal
Opcional. Um valor de string hexadecimal de 24 caracteres para o novo ObjectId.
integer
Opcional. O valor inteiro, em segundos, é adicionado à Unix epoch para criar o novo carimbo de data/hora.

ObjectId() tem os seguintes métodos:

Métodos
Descrição
Retorna a parte do timestamp do objeto como uma Data.
Retorna o ObjectId como uma string hexadecimal.
Retorna ObjectId.self.

A partir do MongoDB 5.0, mongosh substitui o shell mongo legado. Os métodos ObjectId() funcionam de maneira diferente em mongosh e no shell mongo herdado. Para obter mais informações sobre os métodos legados, consulte Legacy mongo Shell.

Para gerar um novo ObjectId, use ObjectId() sem argumento:

newObjectId = ObjectId()

Neste exemplo, o valor de newObjectId é:

ObjectId("507f1f77bcf86cd799439011")

Para retornar o ObjectId como uma string hexadecimal, use o método toString().

ObjectId("507f191e810c19729de860ea").toString()

O método retorna:

507f191e810c19729de860ea

Você pode usar uma data personalizada para especificar um ObjectId.

1

Internamente, os objetos de Data são armazenados como 64inteiros assinados que representam o número de milissegundos desde a época do Unix . Para saber mais, consulte Date().

myDate = new Date( "2024-01-01" )
2
timestamp = Math.floor( myDate / 1000 )
3

Você pode verificar a data usando ObjectId.getTimestamp().

newObjectId = ObjectId(timestamp)
ObjectId("6592008029c8c3e4dc76256c")

Se você deseja ajustar o carimbo de data/hora do ObjectId, use um número inteiro para gerar um novo ObjectId.

newObjectId = ObjectId(32)

O valor ObjectId é semelhante a:

ObjectId("00000020f51bb4362eee2a4d")

O exemplo ObjectId consiste em:

  • Um carimbo de tempo de quatro bytes, 00000020

  • Um elemento aleatório de cinco bytes, f51bb4362e

  • Um contador de três bytes, ee2a4d

Os primeiros quatro bytes do ObjectId são o número de segundos desde a Unix epoch. Neste exemplo, o carimbo de data/hora do ObjectId é 00000020 , que é 32 em hexadecimal.

Se você quiser usar uma cadeia hexadecimal para especificar um ObjectId, passe um valor hexadecimal de caracteres 24 exclusivo ao chamar ObjectId():

newObjectId = ObjectId("507f191e810c19729de860ea")

Dica

← Date() e Datetime