Solución de problemas de recuperación de ID de MongoDB con la biblioteca MGO de Golang
cuando se usa la biblioteca MGO para operaciones de MongoDB en Golang, los desarrolladores pueden encontrar un problema en el que no pueden encontrar un ID de identificación. Este problema es evidente desde el siguiente fragmento de código y su salida:
session.SetMode(mgo.Monotonic, true)
coll := session.DB("aaaw_web").C("cron_emails")
var result Result
fmt.Printf("%v", message.ID)
err = coll.FindId(bson.ObjectId(message.ID)).One(&result)
fmt.Printf("%v", result)
fmt.Println(err)
output:
595f2c1a6edcba0619073263 {ObjectIdHex("") 0 0 0 0 { 0 false 0 } 0 0 0 0 0 0 0} ObjectIDs must be exactly 12 bytes long (got 24) not found
A pesar del documento existente en MongoDB, el código no logra recuperarlo. Para resolver este problema, es crucial comprender la naturaleza de las identificaciones de objeto en mongodb.
entendiendo los identificadores de objeto en mongodb
Los ids de objeto en MongoDb son valores de 12 bytes que consisten en los siguientes componentes:
Converting Hexadecimal String to MongoDB Object ID
In the code snippet provided, El valor de Message.id es una representación de cadena hexadecimal de 24 caracteres de la ID de objeto. Para convertir esta cadena en una ID de objeto MongoDB, debe usar la función bson.objectidhex ():
err = coll.FindId(bson.ObjectIdHex(message.ID)).One(&result)
[&] [&] Y utilizando las funciones apropiadas para convertir entre representaciones hexadecimales e ID de objeto, los desarrolladores pueden recuperar efectivamente documentos utilizando la biblioteca MGO. Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3