Firestore(NoSQL) 中 "JOIN" 的有效替代方案是什么?

what would be efficient alternative of "JOIN" in Firestore(NoSQL)?

我有 users collection & transactions collection.

我需要通过计算his/her笔交易来获取用户的余额。

而且我听说您可以复制和非规范化您的数据库,以减少一次请求中读取的文档。 (看文档多花钱)

我的方法:

  1. 在用户文档中设置transactioncollection为“subcollection”,这样你就只得到一个用户的文档,计算[=34=上需要的值].
  2. 将那些 collection 单独设为最高级别 collection,并以某种方式进行“JOIN”查询以获取 his/her 事务,然后计算 client-side 上的值。
  3. 只需在用户的文档中创建一个名为“余额”的字段,并在他们每次进行交易时更新它。 (但这似乎不太适应未来可能做出的改变)

哪种方法有效?或者也许有完全不同的方法?

Which approach is efficient?

第三个

Or Maybe are there totally different approaches?

当然有,但到目前为止,第三种是最好的也是最便宜的。每次执行新交易时,只需使用以下方式增加“余额”字段: