猿问

我如何处理 Go 版本的 animalDB API 的结果值?

使用 AnimalDB 的 Go 版本 API,我如何处理 API 的结果?


我可以得到由JS版本 API 创建的文档 id 作为ret.ref.value.id如下:


client.query(

    q.Create(

        q.Collection(this.collection), 

          { data: JSON.parse(textarea_data) }))

.then( (ret) => {

  document_id = ret.ref.value.id;

}

但是,使用Go API,返回值的类型是map,但我无法处理如下:


    ret, _ := client.Query(

        f.Create(

            f.Collection("label"),

            f.Obj{"data": f.Obj{"title": "What I had for breakfast .."}},

        ),

    )

    fmt.Println(ret)

    fmt.Println(ret["ref"])

Println(ret)的结果如下:


map[data:map[title:What I had for breakfast ..] ref:{257136925662511627 0x9fa1a0 0x9fa1a0 <nil>} ts:1581483731810000]

Println(ret["ref"])的结果是错误如下:


invalid operation: ret["ref"] (type faunadb.Value does not support indexing)

如何获取创建的文档 ID?谢谢您的建议!


波斯汪
浏览 97回答 1
1回答

当年话下

我可以得到它如下:&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;ref&nbsp;f.RefV &nbsp;&nbsp;&nbsp;&nbsp;ret,&nbsp;_&nbsp;:=&nbsp;client.Query( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.Create( &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.Collection("label"), &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;f.Obj{"data":&nbsp;f.Obj{"title":&nbsp;"What&nbsp;I&nbsp;had&nbsp;for&nbsp;breakfast&nbsp;.."}}, &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;), &nbsp;&nbsp;&nbsp;&nbsp;) &nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;err&nbsp;:=&nbsp;ret.At(f.ObjKey("ref")).Get(&ref);&nbsp;err&nbsp;==&nbsp;nil&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fmt.Println(ref.ID) &nbsp;&nbsp;&nbsp;&nbsp;}关键点是Value.At()、ObjKey()、Get()和RefV
随时随地看视频慕课网APP

相关分类

Go
我要回答