node.js - 如何在NeptuneDB中进行分页以实现高性能

标签 node.js angular pagination gremlin amazon-neptune

您好,我现在正在使用 aws NeptuneDB(Gremlin)、NodeJs 作为后端、Angular 作为前端构建一个网站。现在我面临一个问题,我想在我的网站上进行分页,因为如果没有分页,我可能会在一次查询中加载并显示 5000 个项目。我知道在 MySQL 中,我们可以使用 like

select * from mydb limit 0, 20;

进行分页。

我可以在 NeptuneDB(或 GraphDB)中实现类似的功能吗?我调查了一段时间,发现了这一点: How to perform pagination in Gremlin

引用这个问题的答案,看来我们无法避免将所有查询结果加载到内存中。这是否意味着有或没有分页没有任何区别。

或者我可以实现 Node 和 Angular 之间的分页吗(我只是猜测)?

那么有什么提高性能的想法吗?

最佳答案

看来我可以使用类似

g.V('vertice').out('some_relationship').order().by().range(0,3)

通过order()可以保证顺序 但问题是: 在分页中,我们需要获取三个参数:currentPage、PageSize、TotalNumOfItems',currentPage和PageSize是从前端传递的,但是我们如何在检索项目之前获取总数?

我的方法是在检索项目之前进行计数:

g.V('vertice').out('some_relationship').count()
g.V('vertice').out('some_relationship').order().by().range(0,3)

这行得通吗?

关于node.js - 如何在NeptuneDB中进行分页以实现高性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59369658/

相关文章:

node.js - PhoneGap 中的 Websocket 以及使用 socket.io 的应用程序

javascript - { 尝试发送信封时出现错误代码 : 'INVALID_REQUEST_BODY' ,

javascript - 从字符串中解析 Vector3?

Angular - 访问 MatMenu 的 elementRef

html - 当鼠标悬停在 html/CSS/angular/bootstrap 中时显示树的完整长文本行(嵌套的 HTML 列表)

c# - 计算分页列表中要包含多少项目

javascript - Mongoose 将请求对象传递给中间件

java - java 和 Angular 项目如何工作并相互通信?

codeigniter - 如何根据数据量添加分页

python - 异步循环分页 api