Tutoriel MongoD...login
Tutoriel MongoDB
auteur:php.cn  temps de mise à jour:2022-04-21 17:49:03

ID d'objet MongoDB



Dans les chapitres précédents, nous avons utilisé l'ID d'objet de MongoDB (ObjectId).

Dans ce chapitre, nous comprendrons la structure d'ObjectId.

ObjectId est une donnée de type BSON de 12 octets au format suivant :

  • Les 4 premiers octets représentent l'horodatage

  • Les 3 octets suivants sont le code d'identification de la machine

  • Les deux octets suivants sont constitués de l'identifiant du processus (PID)

  • Les trois derniers octets sont des nombres aléatoires.

Les documents stockés dans MongoDB doivent avoir une clé "_id". La valeur de cette clé peut être de n’importe quel type et la valeur par défaut est un objet ObjectId.

Dans une collection, chaque document a une valeur "_id" unique pour garantir que chaque document de la collection peut être identifié de manière unique.

La principale raison pour laquelle MongoDB utilise ObjectId au lieu d'autres méthodes plus conventionnelles (telles que l'augmentation automatique des clés primaires) est que dans plusieurs La synchronisation et l'augmentation automatique de la valeur de la clé primaire sur le serveur sont laborieuses et prennent du temps.


Créer un nouvel ObjectId

Utilisez le code suivant pour générer un nouvel ObjectId :

>newObjectId = ObjectId()

L'instruction ci-dessus renvoie l'identifiant généré unique suivant :

ObjectId("5349b4ddd2781d08c09890f3")

Vous pouvez également utiliser l'identifiant généré pour remplacer l'ObjectId généré automatiquement par MongoDB :

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

L'horodatage du document créé

Puisque l'ObjectId stocke un horodatage de 4 octets, Vous n'avez donc pas besoin d'enregistrer un champ d'horodatage pour votre document, vous pouvez obtenir l'heure de création du document grâce à la fonction getTimestamp :

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

Le code ci-dessus renverra l'heure de création du document au format ISO :

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

Convertir ObjectId en chaîne

Dans certains cas, vous devrez peut-être convertir ObjectId au format chaîne. Vous pouvez utiliser le code suivant :

>new ObjectId().str

Le code ci-dessus renverra une chaîne au format Guid :

5349b4ddd2781d08c09890f3

Site Web PHP chinois