如何使用 aql 对 Aerospike 中特定 bin 中的所有列表进行排序?

How to sort all lists in a specific bin in Aerospike using aql?

我对 Aerospike 中的有序列表有一些疑问:

  1. 如何使用 aql 在数据库中查看列表是否有序?

  2. 有序列表是否表示已排序?

  3. 我想扫描数据库并更改所有列表(在特定的 bin 中)以进行排序。我想做的是使用 set_type,但我似乎无法让它工作。那可能吗?我该怎么做?

谢谢

我认为 AQL 不是充分利用列表功能的正确工具。也许它还没有更新到列表的全部功能。它建立在 C 客户端之上。至少我检查过的 AQL 版本 3.15.2.1 不是。您可能想要编写一个 java 客户端应用程序。

我在此处发布您交叉发布的问题的答案 https://discuss.aerospike.com/t/list-oprations/5282:

您可以使用 ScanPolicy.includeBinData=false 扫描命名空间,对于您返回的每个记录摘要,使用 operate() 将以下操作包装到单个事务中:

您只需要运行这一次来清理您的数据库。

订购类型将适用于所有未来的操作。您只需继续使用 ListWriteFlags.ADD_UNIQUE 列表策略即可。

这是针对 Java 客户端的,但所有其他客户端都包含这些操作和策略。