Google cloud firestore 有没有一种方法可以定义在所有集合中的firestore中从未被索引的单个字段

Google cloud firestore 有没有一种方法可以定义在所有集合中的firestore中从未被索引的单个字段,google-cloud-firestore,Google Cloud Firestore,我知道索引在firestore中是有成本的。大多数时候,我们只是简单地存储对象,而不真正关心索引,即使我们不希望大多数字段被索引 如果我理解正确,任何级别的任何字段都会被索引。即,对于以下伪json文档 { "root_field1": "abc" (indexed) "root_field2": "def" (indexed) "root_field3": { "

我知道索引在firestore中是有成本的。大多数时候,我们只是简单地存储对象,而不真正关心索引,即使我们不希望大多数字段被索引

如果我理解正确,任何级别的任何字段都会被索引。即,对于以下伪json文档

{
  "root_field1": "abc"  (indexed)
  "root_field2": "def"  (indexed)
  "root_field3": {
    "Sub_field1: "ghi" (indexed)
    "sub_field2: "jkl" (indexed)
    "sub_field3: {
      "Inner_field1: "mno" (indexed)
      "Inner_field2: "pqr" (indexed)
   }
}
让我们假设我有以下记录

{
 "name": "abc"
 "birthdate": "2000-01-01"
 "gender": "m"
}
假设我只想对字段“name”进行索引。一种解决方案(A),不必指定每个字段,就是这样定义它(即将根字段移动到子级别
未索引
),并从索引中排除
未索引

{
 "name": "abc"
 "unindexed" {
   "birthdate": "2000-01-01"
   "gender": "m"
}
理想情况下,我只想指定一个前缀,如
\uuu
,以防止每个字段被索引,但没有全局解决方案

{
 "name": "abc"
 "_birthdate": "2000-01-01"
 "_gender": "m"
}
我的解决方案(A)正确吗?是否有更优雅的通用解决方案?
谢谢

根据文件

添加单个字段索引豁免

单字段索引豁免允许您覆盖自动索引 集合中特定字段的设置。您可以添加一个 控制台的单字段豁免:

  • 转到单字段索引部分

  • 单击添加豁免

  • 输入集合ID和字段路径

  • 为此字段选择新的索引设置。启用或禁用 自动更新的升序、降序和数组包含 此字段的单字段索引

    单击保存豁免


  • 谢谢这就是我在解决方案A中提出的(一个名为“未索引”的顶级字段,其中包含子对象)。如果我有100个字段和多个集合ID的对象呢?必须为每个集合定义每个字段是一件痛苦的事情,所以我想知道是否有更通用的解决方案