当前位置: 首页 > 知识库问答 >
问题:

新的Firebase Firestore DocumentDb如何对大型子集合建模

任伟
2023-03-14

在firebase realtime数据库中,您通常会将大型子集合移到它自己的单独集合中。例如,如果一个用户可能有大量的跟随者,数据模型可能会在user对象中保留跟随数组,但将跟随者移到一个单独的集合中。

    null
  • 用户ID
    • followeruserid

    您是否必须对新的Cloud Firestore进行同样的建模,或者您是否可以在查询中使用投影,这样您就不会在每次扫描时返回一个大的子集合。听起来像是子集合存储在它们自己的完整集合中,所以这可能会使子集合的存储效率更高?

共有1个答案

章誉
2023-03-14

我认为您根本不必这样做,因为获取文档不会从子集合下载其他文档。也就是说,它并没有在实时数据库中的缺点。

我找不到另一个来源在短时间内提到它,所以请看这段视频。这是Android的“入门”视频,大约40秒(从我的链接中提供的时间戳开始),他提到了我所说的内容和Todd Kerpelman的声明:“[...]看到包含一堆文档的集合非常常见,然后这些文档指向包含其他文档的子集合,等等。”,基本上暗示了团队期望这种类型的数据存储。

 类似资料:
  • 我正在尝试为firestore中的社交媒体应用程序组织数据。为帖子创建一个新集合或将其放入用户的子集合更好吗? 深度应该是一样的,但是一种方式比另一种方式有什么优势吗? 创建新集合: 职位(集合) 用户(集合) 用户中的子集合: 用户(集合)

  • 我想在 中使用 trait 对象。在C中,我可以制作一个基类,从中派生出和。然后我可以创建一个

  • 我正在尝试将以下结构从实时数据库迁移到Firestore: 因此,在根节点“资源”下,我有一些包含资源项列表的子节点(SENT、ACCEPT、REFUSED、...)。 使用Firestore,我似乎无法将subCollection直接置于collection之下(当我试图在管理控制台中使用Firestore复制此结构时,我需要创建一个中间文档,如: 女巫通向那个结构: 因此子节点“SENT”被复

  • 我正在制作Spring云流Kafka流活页夹。在我的consumerbean方法中,我希望返回KStream,并将字符串列表作为值- 是否可以使用集合作为其值的KStream?如果是,有人能解释一下如何创建它吗?

  • 问题内容: 我收集了约100万条记录,每个记录有20个字段。我需要更新每个记录(文档)中的整数字段,并向该字段随机分配1或2 。在游标遍历整个集合时如何执行此操作?第二次搜索MongoDB已经找到的对象只是为了能够更新它似乎不是一个好主意: 如何有效地更新具有不同值的巨大MongoDB集合的每个文档中的字段? 问题答案: 您的方法基本上是正确的。但是,我不会将这样的集合视为“巨大的”。您可以从sh