Maison > développement back-end > Golang > Comment corriger l'erreur « Les ID d'objet doivent avoir une longueur exacte de 12 octets » lors de l'utilisation de FindId() dans la bibliothèque Mgo de Golang ?

Comment corriger l'erreur « Les ID d'objet doivent avoir une longueur exacte de 12 octets » lors de l'utilisation de FindId() dans la bibliothèque Mgo de Golang ?

DDD
Libérer: 2024-10-31 19:41:01
original
1026 Les gens l'ont consulté

How to Fix

Dépannage de l'utilisation de FindId() dans la bibliothèque Mgo de Golang

Lors de la tentative de récupération d'un document à l'aide de la fonction FindId() dans mgo, une erreur peut survenir en raison d'une valeur ObjectId non valide. Le message d'erreur « Les ID d'objet doivent avoir une longueur exacte de 12 octets » indique que l'ID fourni n'est pas au format attendu.

Comprendre le format ObjectId

Un ObjectId dans MongoDB est une valeur de 12 octets qui identifie de manière unique un document. Il est généralement représenté sous la forme d'une chaîne hexadécimale de 24 caractères. La bibliothèque mgo s'attend à ce que l'ObjectId soit fourni sous la forme d'un objet bson.ObjectId ou d'une représentation binaire de 12 octets.

Résolution du problème

Dans le code fourni, message.ID est une chaîne contenant la représentation hexadécimale de l'ObjectId. Pour utiliser cette valeur avec FindId(), elle doit être convertie en objet bson.ObjectId à l'aide de la fonction bson.ObjectIdHex() :

<code class="go">err = coll.FindId(bson.ObjectIdHex(message.ID)).One(&result)</code>
Copier après la connexion

En utilisant bson.ObjectIdHex(), vous vous assurez que la valeur fournie La chaîne est correctement interprétée et convertie en une valeur ObjectId valide, résolvant ainsi l'erreur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal