firestore 文档没有深入讨论使用子集合与顶级集合所涉及的权衡,但确实指出它们的灵活性和“可扩展性”较低。鉴于您牺牲了在子集合中设置数据的灵活性,除了精神上令人满意的结构之外,还必须有一些明确的优势。
例如,与从小得多的集合中获取所有项目相比,对大型集合中的单个键进行 firestore 查询的时间如何?
假设我们要为一个家庭单元中的所有人查询一个大型集合“人”。或者,首先按家庭将数据划分为家庭单位。
人 -> 人:{family: 'Smith'}
相对
家庭 -> 家庭:{name:'Smith'} -> 人 -> 人
我希望后者更有效率,但这是正确的吗?每个都有大 O 估计吗?子集合的任何其他优势(例如交易)?