如何使用Sails.js/Waterline高效地分页大量查询结果?

如何使用Sails.js/Waterline高效地分页大量查询结果?,sails.js,waterline,Sails.js,Waterline,我正在水线ORM后面处理一个大型数据集。在一些用例中,我需要对许多/大部分记录进行一些处理——成千上万 到目前为止,我一直在使用.find(),但它会执行并返回整个结果集。是否有一种Sails/Waterline方法来迭代查询结果,从而保留ORM中与存储无关的方面?您可以使用paginate,类似->Model.find().paginate({page:xx,limit:xx}) 更多信息请点击此处: 搜索分页:)您可以使用分页,类似->Model.find().paginate({page:

我正在水线ORM后面处理一个大型数据集。在一些用例中,我需要对许多/大部分记录进行一些处理——成千上万


到目前为止,我一直在使用
.find()
,但它会执行并返回整个结果集。是否有一种Sails/Waterline方法来迭代查询结果,从而保留ORM中与存储无关的方面?

您可以使用paginate,类似->Model.find().paginate({page:xx,limit:xx})

更多信息请点击此处:
搜索分页:)

您可以使用分页,类似->Model.find().paginate({page:xx,limit:xx})

更多信息请点击此处: 搜索分页:)

如果要保持存储不可知的吃水线特性,则必须查看实际的架构实现(即使是,如果要编写存储不可知的代码)

你可以:

  • 使用像@holzanic answers这样的分页,但是这可能会在某些存储技术中带来关键的性能问题
  • 如果要从模型中列出整个对象,可以确保可以按id创建分页。可以在查询中获取前n个元素,然后尝试获取下一页,其中它们的id属性大于上一页中最后接收到的id属性
  • 如果您想保持存储不可知的吃水线特性,那么您必须查看实际的模式实现(甚至如果您正在编写存储不可知的代码)

    你可以:

  • 使用像@holzanic answers这样的分页,但是这可能会在某些存储技术中带来关键的性能问题
  • 如果要从模型中列出整个对象,可以确保可以按id创建分页。可以在查询中获取前n个元素,然后尝试获取下一页,其中它们的id属性大于上一页中最后接收到的id属性

  • 啊,谢谢!我很确定我忽略了什么啊,谢谢!我很确定我忽略了什么