Menu Docs

ObjectId()

ObjectId(<value>)

Importante

Método mongosh

Este é um método mongosh . Esta não é a documentação de Node.js ou de outros métodos de driver específicos da linguagem de programação.

Na maioria dos casos, métodos mongosh funcionam da mesma forma que os métodos legados do shell mongo . No entanto, alguns métodos legados não estão disponíveis em mongosh.

Para a documentação do shell legado mongo, consulte a documentação para a release correspondente do MongoDB Server:

Para drivers da API do MongoDB, consulte a documentação do driver do 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 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 data/hora 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: