Maison >développement back-end >Golang >Comment rechercher un document par _id en utilisant bson.RawValue dans mongo-go-driver ?
Dans mongo-go-driver, vous pouvez trouver un document par son champ _id généré automatiquement. Cependant, un problème peut survenir lorsque le champ _id est fourni en tant que bson.RawValue.
L'extrait de code fourni tente de trouver un document à l'aide d'un bson.RawValue objet, mais il ne renvoie rien. Pour remédier à cela, convertissez la RawValue en un ObjectID à l'aide de primitive.ObjectIDFromHex.
<code class="go">import ( "context" "encoding/hex" "encoding/json" "go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/bson/bsoncodec" "go.mongodb.org/mongo-driver/bson/bsonprimitive" "go.mongodb.org/mongo-driver/mongo" ) func findDocumentByID(collection *mongo.Collection, ctx context.Context, id string) (*bson.Raw, error) { objID, err := bsonprimitive.ObjectIDFromHex(id) if err != nil { return nil, err } value := collection.FindOne(ctx, bson.M{"_id": objID}) return value.DecodeBytes() }</code>
Considérez le document suivant dans votre base de données MongoDB :
<code class="json">{ "_id": "5c7452c7aeb4c97e0cdb75bf", "name": "John Doe", "age": 30 }</code>
Pour trouver ce document à l'aide de la fonction ci-dessus, fournissez le _id comme string:
<code class="go">id := "5c7452c7aeb4c97e0cdb75bf" value, err := findDocumentByID(collection, ctx, id) if err != nil { return nil, err }</code>
La variable valeur contiendra désormais les octets décodés du document trouvé.
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!