如何解决我可以将现有字段重用作Firestore中的分片时间戳吗?
我一直在寻找Firestore限制顺序索引字段的解决方案,这意味着该doc中的内容。
“顺序索引字段”是指以下任何文档集合: 包含单调增加或减少的索引字段。在 在很多情况下,这意味着一个时间戳字段,但是任何单调 增大或减小字段值可以触发写入限制 每秒500次写入。
根据解决方案,我可以在集合中添加一个shard
字段,其中将包含随机值,并使用时间戳创建一个复合索引。我正在尝试通过Document
中现有的字段来实现这一目标。
我的文档具有以下字段:
{
users: string[],createdDate: Firebase Timestamp
....
}
我已经创建了一个复合索引:users Arrays createdDate Descending
。另外,我还为Automatic index settings
的field字段创建了Exemptions。 users
字段将包含Firebase自动生成的ID的列表,因此绝对是随机的。现在,我不确定示例文档中字段users
是否会完成字段shard
的工作。这样,我们可以避免添加新字段并仍然提高写入速率。有人可以帮我吗?
解决方法
虽然我没有特定经验可以说明您要尝试做的事情肯定会或不会按您预期的方式工作,但我会根据文档说明的事实(按我的重点)假定它会起作用:
在时间戳字段旁边添加一个分片字段。在分片字段中使用1..n 不同的值。这样会将集合的写限制提高到500 * n,但是您必须聚合n个查询。
如果每个users
数组包含不同的且实质上是随机的用户ID,则将数组字段值视为“不同”(因为两个数组只有在其元素彼此相等时才相等),因此适合分片。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。