获取集合 firestore 中的文档数

时间:2021-01-03 13:01:44

标签: python google-cloud-firestore

是否可以使用 python 计算 Firestore 中一个集合有多少个文档?

我刚刚找到了这个代码

    functions.firestore.document('collection/{documentUid}')
    .onWrite((change, context) => {

    if (!change.before.exists) {
        // New document Created : add one to count

        db.doc(docRef).update({numberOfDocs: FieldValue.increment(1)});
    
    } else if (change.before.exists && change.after.exists) {
        // Updating existing document : Do nothing

    } else if (!change.after.exists) {
        // Deleting document : subtract one from count

        db.doc(docRef).update({numberOfDocs: FieldValue.increment(-1)});

    }

return;
});

我如何用 python 做到这一点?

1 个答案:

答案 0 :(得分:0)

Firestore(与许多 NoSQL 数据库一样)没有内置的聚合查询。如果要确定文档数量,主要有两个选择:

  1. 读取所有文档,然后在客户端进行计数。
  2. 将文档计数保留在数据库本身中,然后在每次添加/删除操作时更新它。

虽然 firsts 选项更简单,但它的可扩展性较差,因为您最终会导致客户阅读所有文档只是为了确定计数。这就是为什么您会发现大多数关于文档计数的问题/文章都侧重于第二种方法。

有关这方面的更多信息,请参阅: