如何在进行AQL选择时包含PK?
示例:
来自test.users的SELECT *
返回:
FirstName,LastName等
我真正想知道的是PK或密钥,所以我可以删除一行。如何在SELECT AQL语句中包含PK。
答案 0 :(得分:7)
默认情况下,Aerospike不会将实际主键存储在数据库中。它默认存储20字节的摘要(密钥的散列)。这对于大键来说是一个巨大的节省。但是,在最新版本中,这可以通过put()操作来更改以存储密钥。但是AQL客户端尚未得到增强,无法利用这一事实。我将为此增强功能提交内部票证。
同时......
答案 1 :(得分:2)
从集合中删除数据 - 要从集合中删除记录,您可以使用scanAll API迭代所有记录并删除。在scanCallback调用期间,它获取每条记录的摘要密钥并删除。这是参考链接
http://www.aerospike.com/community/labs/deleting_sets_and_data.html
一旦我们扩展了通过AQL检索主索引的功能,您就可以检索已创建的主索引键,但通过调用 WritePolicy sendKey 属性确保存储密钥强>上课。 除了记录放置的哈希摘要之外,SendKey还发送用户定义的密钥。默认情况下,它不会被发送。
答案 2 :(得分:1)
替代解决方案
创建额外的bin以保存主键并将其编入索引。然后,您可以使用AQL语句检索此主键。