Lors de l'utilisation de l'API Firestore dans Ruby, j'ai résumé ce qu'il faut faire si vous souhaitez supprimer uniquement la collection spécifiée qui répond à la condition where.
sample.rb
def delete_sample
#Obtenir un objet Firestore
firestore = Google::Cloud::Firestore.new
#Pour stocker le tableau de documents à supprimer
doc_array = []
#Obtenir la collection
col_ref = firestore.col 'sample_collection'
#Critères de collecte
query = col_ref.where 'category', '==', 'test'
query.get do |r|
#Stocker le document cible dans un tableau
doc_array.push r.ref
end
#Considérez que vous ne pouvez supprimer que 500
document_index = 0
batch_index = 0
#Supprimer par lots
while document_index < doc_array.size
firestore.batch do |b|
#Suspendu au 501e index
break if batch_index == 500
b.delete doc_array[document_index]
document_index += 1
batch_index += 1
end
batch_index = 0
end
end
Recommended Posts