如何处理 Go 版本 faunaDB API 的结果值?
How can I handle result value of Go version faunaDB API?
使用 faunaDB 的 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,return 值的类型是 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?感谢您的建议!
我可以这样获取:
var ref f.RefV
ret, _ := client.Query(
f.Create(
f.Collection("label"),
f.Obj{"data": f.Obj{"title": "What I had for breakfast .."}},
),
)
if err := ret.At(f.ObjKey("ref")).Get(&ref); err == nil {
fmt.Println(ref.ID)
}
重点是Value.At(), ObjKey(), Get(), and RefV
使用 faunaDB 的 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,return 值的类型是 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?感谢您的建议!
我可以这样获取:
var ref f.RefV
ret, _ := client.Query(
f.Create(
f.Collection("label"),
f.Obj{"data": f.Obj{"title": "What I had for breakfast .."}},
),
)
if err := ret.At(f.ObjKey("ref")).Get(&ref); err == nil {
fmt.Println(ref.ID)
}
重点是Value.At(), ObjKey(), Get(), and RefV