以原子方式对 firestore 中的大量文档进行重新排序

问题描述 投票:0回答:1

列表最多可以包含 100000 个文档,并使用整数字段排序。 由于每个事务或批量写入的原子操作限制为 500 个,更新排序字段需要分多个批次完成,本质上使其成为相对容易失败的非原子操作。这种情况下所需的恢复措施需要大量维护,而且并不理想。

有没有更好的方法来原子地重新排序 Firestore 数据库中的大量文档列表?

database sorting google-cloud-firestore atomic
1个回答
0
投票

有没有更好的方法来原子地重新排序 Firestore 数据库中的大量文档列表?

没有办法。您已经确定了 Firestore 中导致您的请求无法实现的关键限制:批次或事务中最多只能包含 500 个文档。 Firestore 没有提供其他方法来自动更新多个文档。

您能做的最好的事情就是创建一个新集合,将所有文档复制到该新集合中(确保它们是最新的),然后向客户发出信号,表明他们应该使用新集合而不是旧集合。该信号(您自己实现)使操作成为原子的。不幸的是,您还在复制期间有效地锁定了数据库(拒绝写入相关集合)并接受并非所有客户端都会同时收到信号。

© www.soinside.com 2019 - 2024. All rights reserved.