Firestore-删除文档而无需先阅读

时间:2018-08-04 21:11:43

标签: google-cloud-firestore

是否可以在不首先收取“阅读”费用的情况下批量删除集合中的文档?

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

根据我对pricing documentation的了解,由于我首先返回了QuerySnapshot,因此它将向我收取300次读取,然后进行300次删除。在“读取” DocumentReference和“读取” DocumentSnapshot中的数据之间没有区别。

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

1 个答案:

答案 0 :(得分:1)

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

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