0

我创建了一个索引来按日期对博客文章进行排序。但是,当我尝试对结果进行分页时,它会不断返回初始结果。

这是我的索引:

CreateIndex({
  name: "posts_desc",
  unique: false,
  serialized: true,
  source: Collection("posts"),
  terms: [],
  values: [
    {
      field: ["data", "sort_date"],
      reverse: true
    },
    {
      field: ["ref"]
    }
  ]
}

然后我绘制结果以通过 ref 获取每个文档。

Map(
  Paginate(Match(Index("posts_desc")), {
    after: [Ref(Collection("posts"), "Ref ID for 6th Document")],
    size: 5
  }),
  Lambda(["date", "ref"], Get(Var("ref")))
)

无论是在我的代码中还是通过 Fauna shell 运行它之后,我仍然得到前 5 个结果。我已经使用原始索引(all_posts)进行了所有这些工作,但现在它似乎不起作用。此外,after现在返回的对象在数组的第一个位置有我的 sort_date 值,在第二个位置有 ref。我尝试将 ref 移动到索引中的第一个位置,但这破坏了排序。任何帮助表示赞赏。

4

1 回答 1

2

您的索引返回元组[sort_date, ref],因此您的after游标应该尊重这些值,您应该创建一个游标,其中第一个元素是日期,并且可以选择在第二个值上添加 ref,即:

Paginate(Match(Index("posts_desc")), {
  after: [Date("2020-07-23")],
  size: 5
})
于 2020-07-23T16:53:52.553 回答