亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

我可以使用 Go API 一次性獲取動物數據庫文檔的 json 數據嗎?

我可以使用 Go API 一次性獲取動物數據庫文檔的 json 數據嗎?

Go
炎炎設計 2022-05-18 10:15:39
使用 AnimalDB 的 Go API,我可以定義一個結構來發布 founaDB,如下所示:type LabelData struct {    RedirectURL   string `fauna:"redirectURL"`    Owner         string `fauna:"owner"`    RedirectCount int    `fauna:"redirectCount"`}然后我可以使用labelData 一次性為Label Data 結構調用 Create,如下所示:    labelData := LabelData{        RedirectURL:   "",        Owner:         "",        RedirectCount: 0,    }    newlabel, _ := client.Query(        f.Create(            f.Collection("label"),            f.Obj{"data": labelData},        ),    )我的問題是,我能否將上面一次性創建的文檔數據轉換為 LabelData 類型的有價值的數據?目前,我將其用于 LabelData 類型的每個元素,如下所示:func faunaLabelInfo(id string) (owner string, redirectCount int, redirectURL string, err error) {    var data f.Value    ret, err := client.Query(f.Get(f.RefCollection(f.Collection("label"), documentID)))    err = ret.At(f.ObjKey("data")).Get(&data)    err = data.At(f.ObjKey("owner")).Get(&owner)    err = data.At(f.ObjKey("redirectCount")).Get(&redirectCount)    err = data.At(f.ObjKey("redirectURL")).Get(&redirectURL)我的預期如下,但這是錯誤的。var labelData LabelDataret.At(f.ObjKey("LabelData")).Get(&labelData)謝謝您的建議!
查看完整描述

1 回答

?
一只萌萌小番薯

TA貢獻1795條經驗 獲得超7個贊

我基于 docker ( docker run --rm --name faunadb -p 8443:8443 fauna/faunadb) 制作了完整的工作示例:


package main


import (

    "fmt"


    f "github.com/fauna/faunadb-go/faunadb"

)


type LabelData struct {

    RedirectURL   string `fauna:"redirectURL"`

    Owner         string `fauna:"owner"`

    RedirectCount int    `fauna:"redirectCount"`

}


var (

    data = f.ObjKey("data")

    ref  = f.ObjKey("ref")

)


func main() {

    var labelId f.RefV

    config := f.Endpoint("http://localhost:8443")

    client := f.NewFaunaClient("secret", config)

    labelData := LabelData{

        RedirectURL:   "",

        Owner:         "",

        RedirectCount: 0,

    }

    // Create a collection to store labels

    _, _ = client.Query(f.CreateCollection(f.Obj{"name": "label"}))


    newlabel, err := client.Query(

        f.Create(

            f.Collection("label"),

            f.Obj{"data": labelData},

        ),

    )

    if err != nil {

        return

    }


    // Get generated label ID

    _ = newlabel.At(ref).Get(&labelId)

    fmt.Println(labelId)


    // Retrieve label by its ID

    value, _ := client.Query(f.Get(labelId))


    var newLabelData LabelData

    _ = value.At(data).Get(&newLabelData)

    fmt.Println(newLabelData.RedirectURL)

    fmt.Println(newLabelData.Owner)

    fmt.Println(newLabelData.RedirectCount)

}


查看完整回答
反對 回復 2022-05-18
  • 1 回答
  • 0 關注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號