Latest web development tutorials

MongoDB ObjectId

Nei primi capitoli abbiamo usato MongoDB oggetto Id (ObjectId).

In questa sezione, vedremo la struttura del ObjectId.

ObjectId BSON è un tipo di dati 12 byte, ha il seguente formato:

  • I primi quattro byte timestamp
  • I successivi tre byte di codice macchina è
  • Immediatamente due byte composte da l'id del processo (PID)
  • Gli ultimi tre byte di numeri casuali.

documenti memorizzati MongoDB ci deve essere una chiave "_ID". Il valore di questa chiave può essere di qualsiasi tipo, il valore predefinito è oggetto ObjectId.

In un set all'interno di ogni documento ha un valore unico "_id", al fine di garantire la raccolta all'interno di ogni documento può essere identificato in modo univoco.

MongoDB usa ObjectId, ma non il motivo principale per altro approccio più convenzionale (come chiave primaria incremento automatico), in quanto il valore della chiave primaria viene aumentata automaticamente la sincronizzazione tra più server è anche in termini di tempo e laborioso.


Creare un nuovo ObjectId

Utilizzare il seguente codice per generare un nuovo ObjectId:

>newObjectId = ObjectId()

La dichiarazione di cui sopra restituisce il seguente ID generato in modo univoco:

ObjectId("5349b4ddd2781d08c09890f3")

È inoltre possibile utilizzare l'id generato invece di MongoDB generato automaticamente ObjectId:

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

documenti Creazione timestamp

Dal momento che ObjectId memorizzati in quattro byte del time stamp, quindi non è necessario per salvare il campo timestamp per i documenti, è possibile creare il tempo per ottenere i documenti per funzione getTimestamp:

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

Il codice di cui sopra restituirà il tempo di creazione di documenti in formato ISO:

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

ObjectId convertito in una stringa

In alcuni casi, potrebbe essere necessario convertire un formato di ObjectId stringa. È possibile utilizzare il seguente codice:

>new ObjectId().str

Il codice di cui sopra restituirà il formato Guid stringa ::

5349b4ddd2781d08c09890f3