MongoDB - ObjectId
Abbiamo utilizzato MongoDB Object Id in tutti i capitoli precedenti. In questo capitolo capiremo la struttura di ObjectId.
Un ObjectId è un tipo BSON a 12 byte con la seguente struttura:
- I primi 4 byte che rappresentano i secondi trascorsi dall'epoca unix
- I prossimi 3 byte sono l'identificatore della macchina
- I prossimi 2 byte sono costituiti da process id
- Gli ultimi 3 byte sono un valore di contatore casuale
MongoDB utilizza ObjectIds come valore predefinito di _idcampo di ogni documento, che viene generato durante la creazione di qualsiasi documento. La complessa combinazione di ObjectId rende unici tutti i campi _id.
Creazione di un nuovo ID oggetto
Per generare un nuovo ObjectId utilizzare il codice seguente:
>newObjectId = ObjectId()
L'istruzione precedente ha restituito il seguente id generato in modo univoco:
ObjectId("5349b4ddd2781d08c09890f3")
Invece di MongoDB che genera l'ObjectId, puoi anche fornire un id a 12 byte -
>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")
Creazione di timestamp di un documento
Poiché _id ObjectId per impostazione predefinita memorizza il timestamp a 4 byte, nella maggior parte dei casi non è necessario memorizzare l'ora di creazione di alcun documento. Puoi recuperare l'ora di creazione di un documento utilizzando il metodo getTimestamp -
>ObjectId("5349b4ddd2781d08c09890f4").getTimestamp()
Ciò restituirà l'ora di creazione di questo documento nel formato di data ISO -
ISODate("2014-04-12T21:49:17Z")
Conversione di ObjectId in String
In alcuni casi, potrebbe essere necessario il valore di ObjectId in un formato stringa. Per convertire ObjectId in stringa, utilizzare il codice seguente:
>newObjectId.str
Il codice sopra restituirà il formato stringa del Guid -
5349b4ddd2781d08c09890f3