【发布时间】:2019-01-18 21:13:43
【问题描述】:
Firestore 对使用的索引数量收费。如果我有一个结构,其中有大量不同用户给出的评分列表,并且将键作为用户 ID,将值作为评分,这会占用太多自动创建的索引吗?有没有一个好的结构。
例如,在“ratings”集合中,我使用我制作的复杂分片机制将每个用户给出的单个评分分片到不同的文档中,该机制将文档填充到最大文档大小约为 20k,然后开始填充另一个文档。假设我有 5 个文档,每个文档都包含 20k 个字段。其中一个文档如下所示:
uid1: 3.3
uid2: 5
uid3: 1.234
...
我应该使用另一种结构来存储 Firestore 中单个“字段”的负载吗?我也不想为每个评级使用大量文档,因为这太贵了。数组也不够大,无法存储大量评分。
【问题讨论】:
-
您能否编辑问题以更清楚地了解您的收藏的文档结构是什么?
-
当然!我更新了问题
-
我从未听说过有人试图通过逐个填写文档来分片集合。我不确定这是推荐的模式,我也不清楚实际节省的金钱是多少。 Firestore 甚至可能不是您要解决的任何问题的最佳解决方案。
-
我的意思是希望能够在自己的应用程序中拥有一个简单的评级系统似乎是一件很常见的事情。 facebook 如何在帖子中存储所有喜欢的内容 - 可能有数百万。由于firestores查询能力较弱,我已经使用mongodb,我真的很想坚持使用firebase产品。
-
@DougStevenson,在我的用例中,我想回答他的第一个查询“......这会占用太多自动创建的索引吗?”......你能回答一下吗?我打算制作一个小文档(不需要分片),但数量很多,并且以类似的方式构建 UID 是关键 ... { uid1 : data1, uid2, data2, ... } 我很担心索引成本!!
标签: firebase google-cloud-firestore