【发布时间】:2018-08-03 11:44:13
【问题描述】:
换句话说,我试图找出在 SQL 中与此等效的 Firestore 是什么:
UPDATE table SET field = 'foo' WHERE <condition>`
是的,我问的是如何update multiple documents、at once,但与链接的问题不同,我特意问的是如何一次性做到这一点,无需将任何内容读入内存,因为当您只想在所有符合条件的文档上设置标志时,无需这样做。
db.collection('table')
.where(...condition...)
.update({
field: 'foo',
});
这是我期望的工作,CollectionReference 没有 .update 方法。
Transactions and Batched Writes 文档提到了事务和批量写入。事务已结束,因为“事务由任意数量的 get() 操作 和任意数量的写入操作组成”Batched writes 也不是解决方案,因为它们逐个文档地工作。
使用MongoDB,这将是
db.table.update(
{ /* where clause */ },
{ $set: { field: 'foo' } }
)
那么,Firestore 是否可以像 SQL 数据库或 MongoDB 的工作方式一样,通过一个查询更新多个文档,即不需要为每个文档往返客户端?如果没有,如何有效地做到这一点?
【问题讨论】:
标签: firebase google-cloud-firestore