Menu Docs
Página inicial do Docs
/
Manual 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 de um driver de idioma específico, como Node.js.

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

Retorna um novo ObjectId. O ObjectId de 12bytes 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 do MongoDB na nuvem

  • MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB

  • MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB

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 à Era UNIX 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.

A partir do MongoDB 5.0, mongosh substitui o shell legado mongo. 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 Date são armazenados como um número inteiro de 64 bits assinado que representa o número de milissegundos desde a Era 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 Era UNIX. Neste exemplo, o carimbo de data/hora do ObjectId é 00000020, que é 32 em hexadecimal.

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

newObjectId = ObjectId("507f191e810c19729de860ea")

Dica

Veja também:

Voltar

HexData