首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >地图上的固定索引和数组澄清

问地图上的固定索引和数组澄清
EN

Stack Overflow用户
提问于 2019-05-12 17:55:11
回答 1查看 2.3K关注 0票数 2

我试图了解Firestore是如何在字段上创建索引的。给定以下示例文档,如何创建索引,特别是对于映射/数组?

​

​

我曾多次在云修复中的索引类型上阅读文档,但我仍然不确定。上面写着:

默认情况下,Cloud自动维护文档中的每个字段和地图中的每个子字段的单字段索引。云修复对单字段索引使用以下默认设置:

  • 对于每个非数组和非地图字段,Cloud定义了两个集合范围单字段索引,一个是升序索引,一个是降维索引。
  • 对于每个地图字段,Cloud为地图中的每个非数组和非地图子字段创建一个集合范围上升索引和一个下降索引。
  • 对于文档中的每个数组字段,Cloud创建并维护一个集合-范围数组-包含索引。
  • 默认情况下,不维护具有集合组范围的单字段索引。

如果我正确理解了这一点,那么就会为这些字段中的每个字段,甚至为alternate_names数组中的值创建一个索引。

因此,如果我想搜索fields.alternate_names包含值为(例如) "Caofang“的任何文档,Firestore将使用索引进行搜索。

我的假设/理解正确吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-12 18:00:45

不,你的理解不对。fields.alternate_names是映射字段中的数组子字段,这意味着它不能满足第二点的要求。您可以通过发出查询来测试您的假设。如果查询失败,您将在错误消息中看到它由于缺少索引而失败。

Firestore将根本不允许没有索引的查询。来自该失败的错误消息将包含到控制台的链接,该链接将允许您创建该查询所需的索引(如果可能的话)。

如果您希望能够查询fields.alternate_names的内容,请考虑将其提升到它自己的顶级字段,默认情况下将对其进行索引。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56101939

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档