mongo-go-driver에서는 자동 생성된 _id 필드로 문서를 찾을 수 있습니다. 그러나 _id 필드를 bson.RawValue로 제공하면 문제가 발생할 수 있습니다.
제공된 코드 조각은 bson.RawValue를 사용하여 문서를 찾으려고 시도합니다. 객체이지만 아무것도 반환하지 않습니다. 이 문제를 해결하려면 원시 값을 ObjectID로 변환합니다.
<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>
MongoDB 데이터베이스에서 다음 문서를 고려하세요.
<code class="json">{ "_id": "5c7452c7aeb4c97e0cdb75bf", "name": "John Doe", "age": 30 }</code>
위 함수를 사용하여 이 문서를 찾으려면 _id를 문자열로 제공하세요.
<code class="go">id := "5c7452c7aeb4c97e0cdb75bf" value, err := findDocumentByID(collection, ctx, id) if err != nil { return nil, err }</code>
이제 값 변수에는 발견된 문서의 디코딩된 바이트가 포함됩니다.
위 내용은 mongo-go-driver에서 bson.RawValue를 사용하여 _id로 문서를 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!