Другими словами, я пытаюсь выяснить, что эквивалентно Firestore в SQL:
UPDATE table SET field = 'foo' WHERE <condition>'
Да, я спрашиваю, как обновить несколько документов, одновременно, но в отличие от связанных вопросов, я специально спрашиваю, как сделать это за один раз, не читая что-нибудь в памяти, потому что нет необходимости делать это, когда все, что вам нужно, это установить флаг для всех документов, соответствующих условию.
db.collection('table')
.where(...condition...)
.update({
field: 'foo',
});
- это то, что я ожидал, CollectionReference не имеет метода .update
.
В документации "Транзакции и пакетные записи" упоминаются транзакции и пакетные записи. Транзакции завершены, потому что "Транзакция состоит из любого числа операций get(), за которыми следует любое количество операций записи" Пакетные записи также не являются решением, так как они работают документ за документ.
С MongoDB это будет
db.table.update(
{ /* where clause */ },
{ $set: { field: 'foo' } }
)
Итак, может ли Firestore обновить несколько документов одним запросом, как работает база данных SQL или MongoDB, т.е. не требуется двусторонняя передача к клиенту для каждого документа? Если нет, то как это можно сделать эффективно?