0

我正在使用动物区系和 vuejs 在滚动上创建分页。为了实现分页,我从原始响应中传递最后一个条目的引用,并使用 after 进行查询,由于某种原因,我仍然得到与原始数组相同的响应。值得一提的是,我的初始查询是基于时间戳属性的反向查询,以便首先获取最新项目。我认为这不会引起问题,欢迎任何建议。我的初始查询没有后字段。

await client.query(
    q.Map(
      q.Paginate(
        q.Match(q.Index("school_query_reverse")),
        {
          after: [q.Ref(q.Collection("school_queries"), params.params.id)],
          size: 100
        }
      ),
      q.Lambda([
        'ts',
        'ref'
      ],
        q.Get(q.Var("ref"))
      )
    )
  )
4

2 回答 2

0

为了继续分页,我在之后添加了以下内容:[1599220462170000],这将在时间戳之后继续排序。

于 2020-09-04T20:26:59.713 回答
0

这是一个重复的问题,我已经在这里回答了。你会考虑编辑那个而不是用额外的信息打开一个新的来保持 Stack Overflow 井井有条吗?

鉴于您的索引包含两个值(ts 和 ref),我可以从您的 lambda 和您之前的问题中得出这两个值,因此 this after 语法将不起作用。您必须至少指定三个值。这样的光标将如下所示:

  after: [
      1599220462170000,
      Ref(Collection("school_queries"), "275735235372515847"),
      Ref(Collection("school_queries"), "275735235372515847")
    ]

您可能想知道为什么那里有三个值。那是因为索引包含您的引用,并且引用始终添加到光标。在索引中再次使用它会导致它被添加两次。为什么和/或我们是否不能优化我不知道,但这就是它目前的工作方式:)。

如果我在您的查询中调整后,那将变成:

 after: [
    1599220462170000,
    q.Ref(q.Collection("school_queries"), params.params.id)
    q.Ref(q.Collection("school_queries"), params.params.id)
  ]

于 2020-09-04T12:14:33.660 回答