English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

ObjectId MongoDB

Nos capítulos anteriores, sempre usamos MongoDB ObjectId. Neste capítulo, vamos entender a estrutura do ObjectId.

ObjectId é um12o tipo BSON do byte, com a seguinte estrutura-

  • Os primeiros4um byte representa o número de segundos desde o novo era do Unix

  • Os próximos3um byte é o identificador do computador

  • Os próximos2um byte é composto pelo id do processo

  • Por fim3um byte é um valor de contador aleatório

O MongoDB usa ObjectIds como_idO valor padrão de cada campo do documento, que é gerado ao criar qualquer documento. A combinação complexa de ObjectId garante que todos os campos _id sejam únicos.

Criar novo ObjectId

Para gerar um novo ObjectId, use o seguinte código-

>newObjectId = ObjectId()

A frase acima retorna o seguinte id gerado exclusivamente-

ObjectId("5349b4ddd2781d08c09890f3)

Além de fornecer ObjectId gerado pelo MongoDB, você também pode fornecer12ID em bytes-

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4)

Timestamp de criação do documento

Devido ao _id ObjectId armazenado por padrão4Timestamp em bytes, portanto, na maioria das vezes, você não precisa armazenar a data e hora de criação de qualquer documento. Você pode usar o método getTimestamp para obter a data e hora de criação do documento-

>ObjectId("5349b4ddd2781d08c09890f4).getTimestamp()

Isso retornará a data e hora de criação do documento no formato ISO-

ISODate("2014-04-12T21:49:17Z")

Conversão de ObjectId para String

Em alguns casos, você pode precisar do valor ObjectId em formato de string. Para converter ObjectId em formato de string, use o seguinte código-

>newObjectId.str

O código acima retornará o formato de string Guid-

5349b4ddd2781d08c09890f3