【问题标题】:Firestore - Delete Documents without Read firstFirestore - 删除文档而不先阅读
【发布时间】:2019-01-12 08:21:31
【问题描述】:

有没有一种方法可以批量删除集合中的文档而无需先支付“读取”费用?

假设我有一个包含 1000 个文档的集合。我决定要删除所有超过 1 天的文档。我可以使用 Query 来返回返回 [300] 文档 (DocumentReference) 的 QuerySnapshot。我不需要阅读文档内容(DocumentSnapshot),我只需要删除它们。

根据我对pricing documentation 的了解,因为我先返回了一个 QuerySnapshot,它会向我收取 300 次读取和 300 次删除的费用。它没有区分“读取” DocumentReference 与“读取” DocumentSnapshot 中的数据。

有什么方法可以避免 300 次读取?我可以理解,取回这 300 个文档需要 Firestore 努力找出适当的文档子集。但是,无论您是否真的尝试获取文档数据(DocumentSnapshot)(例如,只是要删除的 DocumentReference),读取的任意费用似乎都应该可以避免。

【问题讨论】:

    标签: google-cloud-firestore


    【解决方案1】:

    要删除您必须拥有的文档或为该文档创建DocumentReference。这要求您知道其完整且准确的文档路径。

    如果您想在不知道其路径的情况下删除符合特定条件的文档,您首先需要查询这些文档以确定这些路径/DocumentReferences。这涉及阅读它们。现在有办法避免这种情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-26
      • 2019-02-03
      • 1970-01-01
      • 2020-10-15
      • 1970-01-01
      • 2021-07-01
      • 2020-09-01
      相关资源
      最近更新 更多