Menukar Primitif.ObjectID kepada String in Go dengan Mongo-Driver
Apabila bekerja dengan MongoDB dalam Go menggunakan pemacu mongo, pembangun boleh menghadapi keperluan untuk menukar primitive.ObjectID kepada rentetan. Walau bagaimanapun, cubaan menghantar primitif.ObjectID terus ke rentetan menggunakan penegasan jenis boleh mengakibatkan ralat:
panic: interface conversion: interface {} is primitive.ObjectID, not string
Ini kerana primitive.ObjectID ialah jenis yang berbeza dan antara muka{} tidak boleh ditaip secara langsung ditegaskan kepada primitif.ObjectID. Untuk menukar primitive.ObjectID kepada perwakilan rentetan, kaedah ObjectID.Hex() boleh digunakan. Berikut ialah contoh:
package main import ( "context" "fmt" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" "go.mongodb.org/mongo-driver/mongo/options" ) func main() { // Connect to MongoDB client, err := mongo.Connect(context.Background(), options.Client().ApplyURI("mongodb://localhost:27017")) if err != nil { panic(err) } defer client.Disconnect(context.Background()) // Get the ObjectId from a MongoDB document mongoDoc := bson.D{{"_id", primitive.NewObjectID()}} // Convert ObjectId to string using ObjectID.Hex() stringObjectID := mongoDoc["_id"].(primitive.ObjectID).Hex() fmt.Println(stringObjectID) // Output: 03174bcc88dea692233713e1 }
Atas ialah kandungan terperinci Bagaimanakah cara saya menukar primitive.ObjectID kepada rentetan dalam Go menggunakan pemacu mongo?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!