我有nodejs和Aerospike的服务器设置。我想实现分页以列出aerospike数据库中的所有数据。 Aerospike似乎不支持limit
,orderBy
或skip
等SQL查询参数。使用LList可以部分解决问题,因为默认情况下,数据按键排序。也许可以使用Aerospike Lua List我们可以部分实现UDF来使用list.take(number of elements from start)
。
但是,由于该集合随着时间的推移而变得非常大,因此OrderBy和Skip变得非常重要,并且无法通过UDF过滤有效地实现。
可以建议如何处理这个吗?
答案 0 :(得分:0)
正如您已经提到的,Aerospike不支持限制&有点查询。解决此限制的一种方法是在列上创建辅助索引并执行辅助索引范围查询。假设您创建一个单调递增值的列。您可以从1-50然后再到51-100进行范围查询,依此类推。
您可以在过滤记录的地方使用UDF和聚合。但它不会非常有效,因为设置扫描将处理集合的所有记录,UDF过滤器将仅返回50(一些n)结果。随着设置大小的增加,最终会浪费大量的处理。