如何解决Faunadb如何对按时间戳排序的索引进行分页
我在动物群db上创建了一个排序索引,以便按时间戳排序,以便首先获取最新的项目,我试图一次检索100个项目,问题是当我从结果中输入after参数时,我收到的结果与初始结果相同。
这是我创建的索引
CreateIndex({
name: "all_school_queries",source: Collection('<school_queries_reversed>'),values: values: [
{
field: ["ts",{reverse: true}]
},{
field: ["ref"]
}
]
})
Map(
Paginate(Match(Index("school_query_reverse")),{
after: [ Ref(Collection("collection_name"),'collection ref from first query')],}),Lambda(
['ts',"ref"],Get(Var("ref"))
)
)
这是第一个结果
{
before: [Ref(Collection("collection_name"),"275484304279077376")],after: [
1598907150720000,Ref(Collection("school_queries"),"12345"),"12345")
],
***我在1598907150720000之后都使用了tiemtamp和参考文献12345。我首先尝试在控制台上确保收到正确的响应,但是从之后输入任何一个结果时,我都得到相同的结果。 / p>
解决方法
我将尝试回答您的问题(我是FaunaDB的开发助理)。我不得不说,由于语法对我来说似乎没有意义,因此我对您的问题感到很困惑,因此,如果您不是您要找的答案,我深表歉意。
我很困惑的事情。
- 索引语法错误,您将其复制到某个地方还是手动重写了?如果您将其复制到某处,则可能会显示错误,因此请告知我。索引名称与您使用的名称不匹配,因此我认为这是一个错字。
-
,在集合名称中颠倒对我来说似乎没有意义,因为反向是在索引而不是集合上定义的。
不过没关系,我尝试重现您的问题,因为我不知道数据的外观,因此我将其简化了。
我使用的索引如下:
CreateIndex({
name: "all_school_queries",source: Collection('school_queries'),values: [
{
field: ["ts"],reverse: true
},{
field: ["ref"]
}
]
})
如果我再按以下方式查询此索引:
Map(
Paginate(Match(Index("all_school_queries")),{size: 1}),Lambda(
['ts',"ref"],Get(Var("ref"))
)
)
我确实得到了我首先添加的最后一个元素(反向索引)
{
after: [
1599220462170000,Ref(Collection("school_queries"),"275735235372515847"),"275735235372515847")
],data: [
{
ref: Ref(Collection("school_queries"),"275735244842205703"),ts: 1599220471200000,data: {
query: "bli"
}
}
]
}
,当我使用返回的after游标获取下一页时(这里我仅指定了一个元素的页面):
Map(
Paginate(Match(Index("all_school_queries")),{size: 1,after: [
1599220462170000,"275735235372515847")
]}),Lambda(
['ts',Get(Var("ref"))
)
)
我确实得到了预期的其他元素。
{
before: [
1599220462170000,ts: 1599220462170000,data: {
query: "bla"
}
}
]
}
那对你不起作用吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。