Beim Versuch, ein Dokument anhand seines _id-Felds abzurufen, kann es zu einem Problem mit dem zurückgegebenen Wert kommen leer. Eine mögliche Ursache ist die falsche Handhabung des ObjectID-Typs der _id.
Im bereitgestellten Codeausschnitt wird die _id durch einen bson.RawValue dargestellt, bei dem es sich um einen generischen Typ zum Halten von BSON handelt Daten ohne spezifische Interpretation. Der Mongo-Go-Treiber erwartet jedoch eine ObjectID, wenn er nach _id sucht.
Um dieses Problem zu beheben, können Sie primitive.ObjectIDFromHex verwenden, um die _id-Zeichenfolge in eine ObjectID zu konvertieren. Hier ist ein Beispiel:
<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>
Dies sollte das gewünschte Dokument mit der angegebenen _id zurückgeben.
Das obige ist der detaillierte Inhalt vonWie rufe ich ein Dokument nach _id mit dem Mongo-Go-Treiber ab?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!