Hon*_* Bu 6 pagination node.js gremlin angular amazon-neptune
您好,我现在正在使用 aws NeptuneDB(Gremlin)、NodeJs 作为后端、Angular 作为前端构建一个网站。现在我面临一个问题,我想在我的网站上进行分页,因为如果没有分页,我可能会在一次查询中加载并显示 5000 个项目。我知道在 MySQL 中,我们可以使用类似
select * from mydb limit 0, 20;
Run Code Online (Sandbox Code Playgroud)
进行分页。
我可以在 NeptuneDB(或 GraphDB)中实现类似的功能吗?我调查了一段时间,发现了这个: How to Perform pagination in Gremlin
参考这个问题的答案,看来我们无法避免将所有查询结果加载到内存中。这是否意味着有或没有分页没有任何区别。
或者我可以实现 Node 和 Angular 之间的分页(我只是猜测)?
那么有什么提高性能的想法吗?
看来我可以使用像
g.V('vertice').out('some_relationship').order().by().range(0,3)
Run Code Online (Sandbox Code Playgroud)
通过 order() 可以保证顺序,但问题是:在分页中,我们需要获取三个参数:currentPage、PageSize、TotalNumOfItems',currentPage和PageSize是从前端传递的,但是我们如何在检索项目之前获取总数?
我的方法是在检索项目之前进行计数:
g.V('vertice').out('some_relationship').count()
g.V('vertice').out('some_relationship').order().by().range(0,3)
Run Code Online (Sandbox Code Playgroud)
这行得通吗?
| 归档时间: |
|
| 查看次数: |
2087 次 |
| 最近记录: |