猿问

使用 golan 查询 mongodb 中的集合并将 id 作为字符串返回

伙计们,我正在尝试使用用户电话查询 MongoDB 和 golan 中的集合,获取用户的 ID 并使用它来查询另一个集合,但是当我尝试使用该返回 ID 时,它给我一个错误


cannot use userid (variable of type interface{}) as string value in argument to primitive.ObjectIDFromHex: need type assertion

我的代码


var result bson.M

    err := userdataCollection.FindOne(context.TODO(), bson.M{"phone":"+2347000000"}).Decode(&result)

    if err != nil {

        if err == mongo.ErrNoDocuments {

            // This error means your query did not match any documents.

            return

        }

        log.Fatal(err)

    }

    var userid = result["_id"]

    fmt.Printf("var6 = %T\n", userid)


    json.NewEncoder(w).Encode(result["_id"]) // this returns prints the user id


     

    id,_ :=  primitive.ObjectIDFromHex(userid) // where I am having the error


慕盖茨4494581
浏览 81回答 1
1回答

慕仙森

返回_id的已经是类型primitive.ObjectID,所以使用简单的类型断言(不需要调用primitive.ObjectIDFromHex()):id := userid.(primitive.ObjectID)
随时随地看视频慕课网APP

相关分类

Go
我要回答