Latest web development tutorials

MongoDB ObjectId

Nos primeiros capítulos temos usado MongoDB objeto Id (ObjectId).

Nesta seção, vamos olhar para a estrutura da ObjectId.

ObjectId BSON é um tipo de dados de 12 bytes, tem o seguinte formato:

  • O primeiro marcador de tempo quatro bytes
  • Os próximos três bytes de código de máquina é
  • Imediatamente dois bytes compostas pelo ID do processo (PID)
  • Os últimos três bytes de números aleatórios.

documentos MongoDB armazenados deve haver uma chave "_id". O valor desta chave pode ser qualquer tipo, o padrão é objeto ObjectId.

Em um jogo dentro de cada documento tem um valor único "_id", para garantir a cobrança dentro de cada documento pode ser identificada exclusivamente.

MongoDB usa ObjectId, mas não a principal razão outra abordagem mais convencional (como chave primária auto-incremento), porque o valor da chave primária é automaticamente aumentado a sincronização entre múltiplos servidores, também é demorado e trabalhoso.


Criar um novo ObjectId

Use o seguinte código para gerar um novo ObjectId:

>newObjectId = ObjectId()

A declaração acima retorna o seguinte ID gerado exclusivamente:

ObjectId("5349b4ddd2781d08c09890f3")

Você também pode usar o ID gerado em vez de MongoDB gerado automaticamente ObjectId:

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

documentos timestamp criação

Desde ObjectId armazenados em quatro bytes do carimbo de tempo, para que você não precisa salvar o campo timestamp para os seus documentos, você pode criar tempo para obter os documentos por função getTimestamp:

>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()

O código acima irá retornar o tempo de criação do documento formato ISO:

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

ObjectId convertida para uma string

Em alguns casos, pode ser necessário para converter um formato ObjectId string. Você pode usar o seguinte código:

>new ObjectId().str

O código acima retornará o formato Guid cadeia ::

5349b4ddd2781d08c09890f3