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

crcmnpdw  于 2022-11-13  发布在  Go
关注(0)|答案(1)|浏览(231)

我正在使用用户电话查询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
fkaflof6

fkaflof61#

返回的_id已经是primitive.ObjectID类型,所以使用简单的类型Assert(并且不需要调用primitive.ObjectIDFromHex()):

id := userid.(primitive.ObjectID)

相关问题