如何对 Fauna DB 中的排序索引进行分页?
How do I paginate a sorted index in Fauna DB?
我创建了一个索引来按日期对博客文章进行排序。但是,当我尝试对结果进行分页时,它一直返回初始结果。
这是我的索引:
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 移动到索引的第一个位置,但这破坏了排序。任何帮助表示赞赏。
你的索引 return [sort_date, ref]
元组,所以你的 after
游标应该尊重这些值,你应该创建一个游标,其中第一个元素是日期,并且可以选择引用在第二个值上,即:
Paginate(Match(Index("posts_desc")), {
after: [Date("2020-07-23")],
size: 5
})
我创建了一个索引来按日期对博客文章进行排序。但是,当我尝试对结果进行分页时,它一直返回初始结果。
这是我的索引:
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 移动到索引的第一个位置,但这破坏了排序。任何帮助表示赞赏。
你的索引 return [sort_date, ref]
元组,所以你的 after
游标应该尊重这些值,你应该创建一个游标,其中第一个元素是日期,并且可以选择引用在第二个值上,即:
Paginate(Match(Index("posts_desc")), {
after: [Date("2020-07-23")],
size: 5
})