0

我可以使用以下方法列出 Appwrite 数据库中的文档:https ://appwrite.io/docs/client/database#databaseListDocuments

const sdk = new Appwrite();

sdk
    .setEndpoint('https://[HOSTNAME_OR_IP]/v1') // Your API Endpoint
    .setProject('5df5acd0d48c2') // Your project ID
;

let promise = sdk.database.listDocuments('[COLLECTION_ID]');

promise.then(function (response) {
    console.log(response); // Success
}, function (error) {
    console.log(error); // Failure
});

此功能支持limit,但上限为 100。如果我有 500 个文档怎么办?如何使用此方法获取所有文档?

4

1 回答 1

0

在您的请求中也包含一个offset参数(请继续阅读以获取详细信息)。

AppWrite 不是返回整个数据库(这可能会使所有网络流量陷入爬网),而是分页,每个请求只返回一页结果。该limit参数表示每个页面上允许的最大数据量(而不是所有可用项目的最大数量)。

包含 a limitof 100 会告诉 API 服务器您需要包含 100 个文档的单页结果,并且默认情况下,AppWrite 将始终返回第一页——除非您指定了所需的页码。幸运的是,该listDocuments()函数允许您通过它的参数来做到这一点offset,您可以将其视为“页码”。

要检索更多项目,只需转到下一页:

例如,以limit100(或更少)的 a 和offset0(第一页)的 a 开头。如果服务器返回一整页结果(例如,在这种情况下为 100 个项目),则将offset1 增加并发出另一个请求(第二个请求将返回接下来的 100 到 199 个文档)。继续增加offset并发出请求,直到服务器返回的结果少于limit允许的结果。此时,您将知道您已经到达文档的末尾,而无需强制服务器立即阻塞所有结果。

这是任何系统返回分页结果的常见过程,尽管参数名称可能会有所不同(例如,“page”与“offset”)。

于 2022-01-03T22:54:53.867 回答