查询界面概览

本页介绍了可用于访问原生模式 Firestore 数据库中数据的不同接口。

操作界面

原生模式的 Firestore 支持两种用于访问数据的接口:

流水线操作

Firestore 的新查询界面。 流水线操作支持基于阶段的可组合语法。您可以通过定义一系列按顺序执行的连续阶段来构建操作。这样一来,您就可以执行复杂的运算,例如对汇总结果进行过滤,而这在以前的界面(核心运算)中是不可能实现的。

流水线操作仅在 Firestore 企业版中提供,并且处于预览版发布阶段。

核心运营

核心操作是 Firestore 的原始接口。 核心操作使用方法链式语法(.where().orderBy().get())在文档或集合引用上检索文档。查询阶段的顺序是隐含的,并且聚合支持有限。

核心操作在企业版和标准版中均可使用,但不同版本之间的索引默认值差异很大。如需了解详情,请参阅下一部分。

版本之间的界面差异

随着企业版引入对原生模式下 Firestore 的支持,Firestore 核心操作与流水线操作均可使用。 在企业版中使用核心操作时,新的索引编制行为和定价模式消除了标准版的许多限制。

功能 标准版 企业版
支持的查询操作 仅限 Firestore 核心操作。 支持 Firestore 核心和流水线操作,以及与 MongoDB 兼容的 Firestore 操作。
索引编制要求 所有查询都需要索引。 查询不需要索引。
创建索引 系统会为单个字段创建自动索引。您可以手动创建复合索引。 系统不会创建任何自动索引。这些索引需要手动管理。
查询性能和费用 由于有索引要求,查询通常具有良好的性能表现 通过创建索引来优化查询性能和费用。您可以使用“查询解释”和“查询数据分析”来识别缺失的索引。

随着数据集不断增长,无索引的查询可能会性能下降且成本上升,因此需要持续监控与优化。

索引开销费用 索引写入不收费,因为索引是自动的。 当写入关联文档时,写入索引条目会消耗写入单位(索引条目每 1 KiB 消耗 1 个写入单位)。由于无需为每个字段创建索引条目,因此可节省存储费用。
结算模式(读取/写入/删除) 文档读取、写入和删除操作收费。 按每次读取和写入(分批)收费。读取费用以读取单位计费(每 4 KiB 为一批次)。写入和删除操作会合并计入写入单位(按 1 KiB 为批次)。
基本定价(每百万次)

所示价格适用于 us-central1 区域

读取:每 10 万个文档$0.03(每 100 万个文档 $0.30)。

写入:每 10 万个文档$0.09(每 100 万个文档 $0.90)。

删除:每 10 万个文档$0.01(每百万个文档 $0.10)

读取单位:每 100 万个读取单位$0.05

写入单位:每 100 万个写入单位$0.26。与标准读取费用相比,当文档大小小于 4KiB 时,价格通常会更低

实时更新

所示价格适用于 us-central1 区域

实时更新按读取计费,费率为每 10 万个文档 $0.03 实时更新具有新的独立 SKU(实时更新单位),按每 4 KiB 为一批次计费。实时更新的费用为每 100 万个读取单位$0.30

后续步骤