Lorsque vous essayez de récupérer un document par son champ _id, vous pouvez rencontrer un problème où la valeur renvoyée est vide. Une cause potentielle est une gestion incorrecte du type ObjectID de _id.
Dans l'extrait de code fourni, le _id est représenté à l'aide d'un bson.RawValue, qui est un type générique pour contenir BSON. données sans aucune interprétation spécifique. Cependant, le pilote mongo-go-driver attend un ObjectID lors d'une recherche par _id.
Pour résoudre ce problème, vous pouvez utiliser primitive.ObjectIDFromHex pour convertir la chaîne _id en un ObjectID. Voici un exemple :
<code class="go">import ( "github.com/mongodb/mongo-go-driver/bson" "github.com/mongodb/mongo-go-driver/mongo" ) // ... objID, _ := primitive.ObjectIDFromHex("5c7452c7aeb4c97e0cdb75bf") value := collection.FindOne(ctx, bson.M{"_id": objID})</code>
Cela devrait renvoyer le document souhaité avec le _id spécifié.
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!