Golang客户端在aerospike中执行cdt list上的操作

时间:2017-09-26 10:45:39

标签: go aerospike

我想在airospike中使用列表作为bin值。所以,http://www.aerospike.com/docs/guide/cdt-list.html似乎是个不错的选择。但是golang https://github.com/aerospike/aerospike-client-go/blob/master/examples/list_map.go中的客户端示例只显示了get和put。

key, _ := as.NewKey(*shared.Namespace, *shared.Set, "listkey1")
client.Delete(shared.WritePolicy, key)

list := []string{"string1", "string2", "string3"}

bin := as.NewBin("listbin1", list)
client.PutBins(shared.WritePolicy, key, bin)

record, err := client.Get(shared.Policy, key, bin.Name)
shared.PanicOnError(err)
receivedList := record.Bins[bin.Name].([]interface{})

validateSize(3, len(receivedList))
validate("string1", receivedList[0])
validate("string2", receivedList[1])
validate("string3", receivedList[2])

提到的所有其他API怎么样?比如如何附加到列表或获取列表中的对象数等?任何对任何文件的引用都将不胜感激。

提前致谢。

2 个答案:

答案 0 :(得分:2)

感谢Flimzy指出文档。也许对于遇到这个问题的未来用户,以下内容可能有所帮助。

要执行列表操作,您需要使用以下方法并指定操作:

https://godoc.org/github.com/aerospike/aerospike-client-go#Client.Operate

Operate方法接受操作并获取使用List * Op方法的操作(例如https://godoc.org/github.com/aerospike/aerospike-client-go#ListAppendOp

答案 1 :(得分:1)

不要指望示例提供完整的文档。请使用the documentation