如何在Python中从Firestore批量删除特定文档

2024-10-03 02:37:56 发布

您现在位置:Python中文网/ 问答频道 /正文

如果我有一个文档ID列表,并且我想从firestore中删除它们,那么最有效的方法是什么?我现在正在列表上使用循环:

document_ids = ["xyz123", "abc0987", "tvu765", ...] # could be up to 30 IDs

for id in document_ids:
   database.collection("documents").document(id).delete()

这是通过一个从前端到Flask路由的AJAX调用完成的,一旦完成,它就会发回一个响应,但是当有20个以上的id时,完成这个过程可能需要几秒钟。你知道吗

有没有办法说,在这里,把这些从这个收藏中删除?你知道吗


Tags: to方法文档idids列表bedocument
2条回答

你现在所做的几乎是唯一的办法。没有像“从…删除”这样的SQL。。。哪里…“命令。您必须使用每个文档的ID来删除它

也许您可以使用multiprocessing来加速io绑定的操作。你知道吗

使用多处理加速

Refer: YouTube Video

import multiprocessing
import time
from google.cloud import firestore

document_ids = ["xyz123", "abc0987", "tvu765", ...] # could be up to 30 IDs
def delete_doc(doc_id):
    database = firestore.Client() 
    database.collection("documents").document(doc_id).delete()

t_start = time.perf_counter()
processes = list()
for id in document_ids:
    p = multiprocessing.Process(target=delete_doc, args=[id,])
    p.start()
    processes.append(p)

for p in processes:
    p.join()

t_finish = time.perf_counter()

print("Total Elapsed Time: {} s".format(round(t_finish - t_start, 3)))

相关问题 更多 >