首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Appwrite获取查询的计数

如何使用Appwrite获取查询的计数
EN

Stack Overflow用户
提问于 2022-07-08 09:09:02
回答 1查看 250关注 0票数 0

在Appwrite文档查询中,我看不到如何根据过滤器为集合执行计数(*)。在添加或删除文档时,是否可能或需要手动处理计数?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-08 21:39:41

简而言之,从0.15.X开始,没有公共API可以使用客户端API获得大于5000个文档的精确计数。这是因为执行计数需要对每个数据库对象进行迭代,并且可能是一个昂贵的数据库操作。

实现目标的一种方法是在需要计数时,使用基于游标的分页来迭代所有数据。

代码语言:javascript
复制
import { Databases } from "appwrite";
const databases = new Databases(client, "[DATABASE_ID]");  // 'client' comes from setup

let count = 0
const queries = [];
const limit = 100;
const offset = undefined;
let cursor = undefined;

while (true) {
    const page = await databases.listDocuments('movies', queries, limit, offset, cursor);
    const length = results.documents.length;
    if (length === 0) break;
    count += length;
    cursor = results.documents[results.documents.length - 1].$id;
}

console.log(count);

有关更多信息,请参考分页文档。正如你可以想象的那样,这可能是缓慢和低效的。

更好的方法是维护一个包含所有计数的元数据集合。您可以让Appwrite函数来增加文档创建的计数。当客户端需要信息时,它可以从元数据集合中获取数据。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72909141

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档