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