Latest web development tutorials

MongoDB ObjectId

Dans les premiers chapitres, nous avons utilisé l'objet MongoDB Id (ObjectId).

Dans cette section, nous allons examiner la structure de la ObjectId.

ObjectId BSON est un type de données de 12 octets, a le format suivant:

  • Les quatre premiers octets timestamp
  • Les trois octets suivants du code machine est
  • Immédiatement deux octets composés par l'identifiant de processus (PID)
  • Les trois derniers octets de nombres aléatoires.

documents MongoDB stockés il doit y avoir une clé "_id". La valeur de cette clé peut être tout type, la valeur par défaut est un objet ObjectId.

Dans un ensemble à l'intérieur de chaque document a une valeur unique "_id", pour assurer la collecte à l'intérieur de chaque document peut être identifié de manière unique.

MongoDB utilise ObjectId, mais pas la raison principale autre approche plus conventionnelle (comme clé primaire auto-incrémentation), parce que la valeur de clé primaire est automatiquement augmenté la synchronisation entre plusieurs serveurs est également temps et laborieux.


Créer un nouveau ObjectId

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

>newObjectId = ObjectId()

La déclaration ci-dessus renvoie le message suivant id généré uniquement:

ObjectId("5349b4ddd2781d08c09890f3")

Vous pouvez également utiliser l'identifiant généré au lieu de MongoDB généré automatiquement ObjectId:

>myObjectId = ObjectId("5349b4ddd2781d08c09890f4")

documents d'horodatage de création

Depuis ObjectId stockés dans quatre octets de l'horodatage, de sorte que vous ne devez pas enregistrer le champ d'horodatage pour vos documents, vous pouvez créer le temps d'obtenir les documents par fonction getTimestamp:

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

Le code ci-dessus sera de retour le temps de création de documents de format ISO:

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

ObjectId converti en une chaîne

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

>new ObjectId().str

Le code ci-dessus retourne le format Guid de string ::

5349b4ddd2781d08c09890f3