我正在使用用户电话查询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
1条答案
按热度按时间fkaflof61#
返回的
_id
已经是primitive.ObjectID
类型,所以使用简单的类型Assert(并且不需要调用primitive.ObjectIDFromHex()
):