执行写操作时,数据库是否通过实体的键以某种顺序写实体?
例如,如果我编写了以下按键(故意使name
(1、7、3)不按顺序排列):
["A", "1"]
["A", "7"]
["A", "3"]
是否对没有过滤器或排序的A
类型查询将返回结果为:
["A", "1"]
["A", "3"]
["A", "7"]
如果我的密钥包含时间戳(以毫秒为单位),则可能更重要:
["UserSession", "e4facf67-969d-46f5-b922-390f61beac0a", "UserRecord", "1597872201000"]
["UserSession", "e4facf67-969d-46f5-b922-390f61beac0a", "UserRecord", "1597872207000"]
["UserSession", "e4facf67-969d-46f5-b922-390f61beac0a", "UserRecord", "1597872203000"]
会查询
("UserRecord").hasAncestor(["UserSession", "e4facf67-969d-46f5-b922-390f61beac0a"])
返回按其名称排序的对象(又称时间戳,以毫秒为单位)?
答案 0 :(得分:2)
是的,Data Store模式下的Cloud Firestore确实按关键顺序存储实体。您可以从best practices文档中看到以下内容:
如果您将自己的手动数字ID或自定义名称分配给创建的实体,请不要使用单调递增的值
如果应用程序产生大量流量,则这种顺序编号可能会导致影响数据存储模式延迟的热点。