optimize update with batch mode

This commit is contained in:
Pritimay Sarkar
2023-11-22 22:37:22 +05:30
parent 55b98e47d3
commit 3775edebeb

View File

@@ -9,24 +9,20 @@ import sys
from datetime import datetime
import matplotlib.pyplot as plt
# Initialize Firebase Admin SDK
cred = credentials.Certificate(os.getcwd() + '/keys/hpos-prod-firebase-adminsdk.json') # Replace with your own service account key path
cred = credentials.Certificate(os.getcwd() + '/keys/hpos-prod-firebase-adminsdk.json')
firebase_admin.initialize_app(cred)
# Get a reference to the Firestore database
db = firestore.client()
# Specify the collections
patient_collection = db.collection("patientData")
test_collection = db.collection("testData")
# start_date = sys.argv[1] # '2023-01-12' #input("Please enter the start date (yyyy-mm-dd): ")
# end_date = sys.argv[2] #'2023-07-16' #input("Please enter the end date (yyyy-mm-dd): ")
query = patient_collection.where(filter=FieldFilter("createdAt", ">=", "2023-11-07")).where(filter=FieldFilter("createdAt", "<", "2023-11-08"))
#.where(filter=FieldFilter("registrationCenterName", "==", "SCS high school"))
patient_docs = query.stream()
# Prepare data to store in CSV
batch = db.batch()
data = []
for patient_doc in patient_docs:
patient_data = patient_doc.to_dict()
@@ -39,5 +35,8 @@ for patient_doc in patient_docs:
if "LAL" in patient_data['_id']:
# print("ADA")
print(patient_data['_id'])
db.collection("patientData").document(patient_doc.id).update({"_idSearch": '20231108' + patient_data['_id']})
doc_ref = db.collection("patientData").document(patient_doc.id)
batch.update(doc_ref, {"_idSearch": '20231108' + patient_data['_id']})
batch.commit()