【发布时间】:2021-02-01 23:09:23
【问题描述】:
下面我已经描述了这个问题并给出了上下文。这里有人遇到过这个问题吗?你是怎么解决的?还是我只是做错了什么?
描述错误
在 AppSync 模型列表上使用基于游标的分页时,它将返回一个空的 items 数组和一个 NON NULLnextToken,这表示有更多结果,当我查询下一个结果集时,它返回3 个匹配我的查询和过滤器的结果。我使用的限制为 10,并且只有 3 个结果,我很困惑为什么 AppSync 在我的第一个查询中没有返回这 3 个结果? (它应该返回 3 个结果 & nextToken 应该是 NULL)
上下文:
- 我有一个用于屏幕的 tabview,第一个选项卡显示 PENDING TODO 项,第二个选项卡显示 COMPLETED TODO 项。
- 我有 3 个结果与我的 COMPLETED 过滤器匹配
- 我有大约 36 个结果与我的 PENDING 过滤器匹配
代码片段/说明
这是列出待办事项的查询,您可以看到限制为 10 和一个可选的 nextToken。这项工作按预期工作,我能够正确地对结果进行分页。
query listTodos($nextToken: String) {
listTodos(limit: 10, nextToken: $nextToken, filter: {
status: {
eq: PENDING
}
}) {
nextToken,
items {
id
title
status
}
}
}
这是列出 COMPLETED todos 的查询,你可以看到限制为 10 和一个可选的 nextToken。这不能正常工作,当我第一次查询 todos 时,它返回一个空的 items 数组 + a NON NULL nextToken...然后我必须使用给定的 nextToken 运行另一个查询来检索 3 COMPLETED todos...这一定是一个错误?
query listTodos($nextToken: String) {
listTodos(limit: 10, nextToken: $nextToken, filter: {
status: {
eq: COMPLETED
}
}) {
nextToken,
items {
id
title
status
}
}
}
预期行为
当我的 listTodos 查询 COMPLETED todos 时,它应该在第一个查询中返回 3 个 todos,我不应该需要使用返回的 nextToken 运行后续查询来检索 ONLY 3 COMPLETED todos。
当使用过滤器进行分页时,它应该只返回与过滤器匹配的 3 个结果并返回 null nextToken。
附加上下文
- 你们还有其他需要帮助调试的上下文吗?告诉我。
我在 Amplify GitHub 上创建了一个问题:https://github.com/aws-amplify/amplify-js/issues/6997
【问题讨论】:
标签: amazon-dynamodb aws-amplify dynamodb-queries