自動生成された_idフィールドでドキュメントを検索しようとしています。以下のコードは何も返しません:
var documentID bson.RawValue
documentID.Type = 7
documentID.Value = []byte("5c7452c7aeb4c97e0cdb75bf")
objID := documentID.ObjectID()
value := collection.FindOne(ctx, bson.M{"_id": objID})
私が提供した値は、Mongo Expressから取得した実際のドキュメントIDです
"_id": ObjectID("5c7452c7aeb4c97e0cdb75bf")
RawValueに悩む理由がわからない場合は、bson.EC.ObjectIDを使用した例を見つけましたが、bsonパッケージにはECタイプがないようです。また、github.com/mongodb/mongo-go-driverに言及している例もいくつかありました/ bson/objectidパッケージですが、そのパッケージも見つかりませんでした。私は以前mgoで開発しましたが、mongo-go-driverは初めてなので、ObjectIDを宣言する簡単な方法を示すことができます。
次のようなものを使用できます。
var userDB user
objectIDS, _ := primitive.ObjectIDFromHex(userID)
collectionUser := dBClient.Database("MyDatabase").Collection("Users")
filter := bson.M{"_id": objectIDS}
err := collectionUser.FindOne(ctx, filter).Decode(&userDB)
if err != nil {
fmt.Println("errror retrieving user userid : " + userID)
}