gpt4 book ai didi

firebase - Firestore可以使用一个查询更新多个符合条件的文档吗?

转载 作者:行者123 更新时间:2023-12-03 23:42:33 25 4
gpt4 key购买 nike

换句话说,我正在尝试找出SQL中与之等效的Firestore:

UPDATE table SET field = 'foo' WHERE <condition>`

是的,我问如何 update multiple documentsat 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的工作方式)更新多个文档,即无需为每个文档往返客户端?如果没有,如何有效地做到这一点?

最佳答案

在Cloud Firestore中更新文档需要知道其ID。 Cloud Firestore不支持等效的SQL更新查询。

您将始终必须分两步执行此操作:

  • 根据您的条件运行查询以确定文档ID
  • 使用单个更新或一个或多个batched writes更新文档。

  • 请注意,您只需要步骤1中的文档ID。因此,您可以运行仅返回ID的查询。在客户端SDK中这是不可能的,但是可以通过REST API和Admin SDK来完成,如下所示: How to get a list of document IDs in a collection Cloud Firestore?

    关于firebase - Firestore可以使用一个查询更新多个符合条件的文档吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48947499/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com