使用 Aerospike Nodejs 客户端进行分页。

我已经设置了一个带有nodejs和Aerospike的服务器。我希望为在aerospike数据库上的一个数据集中列出所有数据实现分页。似乎Aerospike不支持类似于limitorderByskip的SQL查询参数。部分使用LList解决了问题,因为数据默认按键排序。此外,也许使用Aerospike Lua列表,我们可以部分地实现UDF以使用list.take(从开始的元素数)。 然而,由于预计集合随着时间的推移会变得非常庞大,因此OrderBy和Skip变得非常重要,不能通过UDF过滤有效地实现。 有人能提出如何处理这个问题的建议吗?

点赞
用户762649
用户762649

如你之前提到的,Aerospike不支持类似于limit & orderby的查询。绕过此限制的方法是在一列上创建辅助索引,然后进行辅助索引范围查询。假设你创建了一个具有单调递增值的列。你可以在1-50和51-100等范围内进行查询。

你可以使用带有聚合的UDF来过滤记录。但是,它的效率不会很高,因为集扫描将处理集合的所有记录,而UDF过滤器仅返回50(一些n)个结果。随着集大小的增长,你将浪费大量的处理时间。

2016-01-21 02:51:31