我创建了一个索引,以按日期对博客文章进行排序。但是,当我尝试对结果进行分页时,它会不断返回初始结果。
这是我的索引:
CreateIndex({
name: "posts_desc",
unique: false,
serialized: true,
source: Collection("posts"),
terms: [],
values: [
{
field: ["data", "sort_date"],
reverse: true
},
{
field: ["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移到索引中的第一位置,但这破坏了排序。任何帮助表示赞赏。
答案 0 :(得分:2)
您的索引返回[sort_date, ref]
的元组,因此您的after
游标应该尊重这些值,您应该在第一个元素是日期的地方创建一个游标,并在第二个值上选择一个ref,即:
Paginate(Match(Index("posts_desc")), {
after: [Date("2020-07-23")],
size: 5
})