Bei Verwendung der Firestore-API in Ruby habe ich zusammengefasst, was zu tun ist, wenn Sie nur die angegebene Sammlung löschen möchten, die die where-Bedingung erfüllt.
sample.rb
def delete_sample
#Holen Sie sich Firestore-Objekt
firestore = Google::Cloud::Firestore.new
#Zum Speichern des zu löschenden doc-Arrays
doc_array = []
#Sammlung abholen
col_ref = firestore.col 'sample_collection'
#Sammelkriterien
query = col_ref.where 'category', '==', 'test'
query.get do |r|
#Speichern Sie das Zieldokument in einem Array
doc_array.push r.ref
end
#Beachten Sie, dass Sie nur bis zu 500 löschen können
document_index = 0
batch_index = 0
#Im Stapel löschen
while document_index < doc_array.size
firestore.batch do |b|
#Bei 501. Index ausgesetzt
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