indexes
Creates, updates, deletes, gets or lists an indexes
resource.
Overview
Name | indexes |
Type | Resource |
Id | google.firestore.indexes |
Fields
The following fields are returned by SELECT
queries:
- get
- list
Successful response
Name | Datatype | Description |
---|---|---|
name | string | Output only. A server defined name for this index. The form of this name for composite indexes will be: projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id} For single field indexes, this field will be empty. |
apiScope | string | The API scope supported by this index. |
density | string | Immutable. The density configuration of the index. |
fields | array | The fields supported by this index. For composite indexes, this requires a minimum of 2 and a maximum of 100 fields. The last field entry is always for the field path __name__ . If, on creation, __name__ was not specified as the last field, it will be added automatically with the same direction as that of the last field defined. If the final field in a composite index is not directional, the __name__ will be ordered ASCENDING (unless explicitly specified). For single field indexes, this will always be exactly one entry with a field path equal to the field path of the associated field. |
multikey | boolean | Optional. Whether the index is multikey. By default, the index is not multikey. For non-multikey indexes, none of the paths in the index definition reach or traverse an array, except via an explicit array index. For multikey indexes, at most one of the paths in the index definition reach or traverse an array, except via an explicit array index. Violations will result in errors. Note this field only applies to index with MONGODB_COMPATIBLE_API ApiScope. |
queryScope | string | Indexes with a collection query scope specified allow queries against a collection that is the child of a specific document, specified at query time, and that has the same collection ID. Indexes with a collection group query scope specified allow queries against all collections descended from a specific document, specified at query time, and that have the same collection ID as this index. |
shardCount | integer (int32) | Optional. The number of shards for the index. |
state | string | Output only. The serving state of the index. |
unique | boolean | Optional. Whether it is an unique index. Unique index ensures all values for the indexed field(s) are unique across documents. |
Successful response
Name | Datatype | Description |
---|---|---|
name | string | Output only. A server defined name for this index. The form of this name for composite indexes will be: projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id} For single field indexes, this field will be empty. |
apiScope | string | The API scope supported by this index. |
density | string | Immutable. The density configuration of the index. |
fields | array | The fields supported by this index. For composite indexes, this requires a minimum of 2 and a maximum of 100 fields. The last field entry is always for the field path __name__ . If, on creation, __name__ was not specified as the last field, it will be added automatically with the same direction as that of the last field defined. If the final field in a composite index is not directional, the __name__ will be ordered ASCENDING (unless explicitly specified). For single field indexes, this will always be exactly one entry with a field path equal to the field path of the associated field. |
multikey | boolean | Optional. Whether the index is multikey. By default, the index is not multikey. For non-multikey indexes, none of the paths in the index definition reach or traverse an array, except via an explicit array index. For multikey indexes, at most one of the paths in the index definition reach or traverse an array, except via an explicit array index. Violations will result in errors. Note this field only applies to index with MONGODB_COMPATIBLE_API ApiScope. |
queryScope | string | Indexes with a collection query scope specified allow queries against a collection that is the child of a specific document, specified at query time, and that has the same collection ID. Indexes with a collection group query scope specified allow queries against all collections descended from a specific document, specified at query time, and that have the same collection ID as this index. |
shardCount | integer (int32) | Optional. The number of shards for the index. |
state | string | Output only. The serving state of the index. |
unique | boolean | Optional. Whether it is an unique index. Unique index ensures all values for the indexed field(s) are unique across documents. |
Methods
The following methods are available for this resource:
Name | Accessible by | Required Params | Optional Params | Description |
---|---|---|---|---|
get | select | projectsId , databasesId , collectionGroupsId , indexesId | Gets a composite index. | |
list | select | projectsId , databasesId , collectionGroupsId | filter , pageSize , pageToken | Lists composite indexes. |
create | insert | projectsId , databasesId , collectionGroupsId | Creates a composite index. This returns a google.longrunning.Operation which may be used to track the status of the creation. The metadata for the operation will be the type IndexOperationMetadata. | |
delete | delete | projectsId , databasesId , collectionGroupsId , indexesId | Deletes a composite index. |
Parameters
Parameters can be passed in the WHERE
clause of a query. Check the Methods section to see which parameters are required or optional for each operation.
Name | Datatype | Description |
---|---|---|
collectionGroupsId | string | |
databasesId | string | |
indexesId | string | |
projectsId | string | |
filter | string | |
pageSize | integer (int32) | |
pageToken | string |
SELECT
examples
- get
- list
Gets a composite index.
SELECT
name,
apiScope,
density,
fields,
multikey,
queryScope,
shardCount,
state,
unique
FROM google.firestore.indexes
WHERE projectsId = '{{ projectsId }}' -- required
AND databasesId = '{{ databasesId }}' -- required
AND collectionGroupsId = '{{ collectionGroupsId }}' -- required
AND indexesId = '{{ indexesId }}' -- required;
Lists composite indexes.
SELECT
name,
apiScope,
density,
fields,
multikey,
queryScope,
shardCount,
state,
unique
FROM google.firestore.indexes
WHERE projectsId = '{{ projectsId }}' -- required
AND databasesId = '{{ databasesId }}' -- required
AND collectionGroupsId = '{{ collectionGroupsId }}' -- required
AND filter = '{{ filter }}'
AND pageSize = '{{ pageSize }}'
AND pageToken = '{{ pageToken }}';
INSERT
examples
- create
- Manifest
Creates a composite index. This returns a google.longrunning.Operation which may be used to track the status of the creation. The metadata for the operation will be the type IndexOperationMetadata.
INSERT INTO google.firestore.indexes (
data__name,
data__queryScope,
data__apiScope,
data__fields,
data__state,
data__density,
data__multikey,
data__shardCount,
data__unique,
projectsId,
databasesId,
collectionGroupsId
)
SELECT
'{{ name }}',
'{{ queryScope }}',
'{{ apiScope }}',
'{{ fields }}',
'{{ state }}',
'{{ density }}',
{{ multikey }},
{{ shardCount }},
{{ unique }},
'{{ projectsId }}',
'{{ databasesId }}',
'{{ collectionGroupsId }}'
RETURNING
name,
done,
error,
metadata,
response
;
# Description fields are for documentation purposes
- name: indexes
props:
- name: projectsId
value: string
description: Required parameter for the indexes resource.
- name: databasesId
value: string
description: Required parameter for the indexes resource.
- name: collectionGroupsId
value: string
description: Required parameter for the indexes resource.
- name: name
value: string
description: >
Output only. A server defined name for this index. The form of this name for composite indexes will be: `projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{composite_index_id}` For single field indexes, this field will be empty.
- name: queryScope
value: string
description: >
Indexes with a collection query scope specified allow queries against a collection that is the child of a specific document, specified at query time, and that has the same collection ID. Indexes with a collection group query scope specified allow queries against all collections descended from a specific document, specified at query time, and that have the same collection ID as this index.
valid_values: ['QUERY_SCOPE_UNSPECIFIED', 'COLLECTION', 'COLLECTION_GROUP', 'COLLECTION_RECURSIVE']
- name: apiScope
value: string
description: >
The API scope supported by this index.
valid_values: ['ANY_API', 'DATASTORE_MODE_API', 'MONGODB_COMPATIBLE_API']
- name: fields
value: array
description: >
The fields supported by this index. For composite indexes, this requires a minimum of 2 and a maximum of 100 fields. The last field entry is always for the field path `__name__`. If, on creation, `__name__` was not specified as the last field, it will be added automatically with the same direction as that of the last field defined. If the final field in a composite index is not directional, the `__name__` will be ordered ASCENDING (unless explicitly specified). For single field indexes, this will always be exactly one entry with a field path equal to the field path of the associated field.
- name: state
value: string
description: >
Output only. The serving state of the index.
valid_values: ['STATE_UNSPECIFIED', 'CREATING', 'READY', 'NEEDS_REPAIR']
- name: density
value: string
description: >
Immutable. The density configuration of the index.
valid_values: ['DENSITY_UNSPECIFIED', 'SPARSE_ALL', 'SPARSE_ANY', 'DENSE']
- name: multikey
value: boolean
description: >
Optional. Whether the index is multikey. By default, the index is not multikey. For non-multikey indexes, none of the paths in the index definition reach or traverse an array, except via an explicit array index. For multikey indexes, at most one of the paths in the index definition reach or traverse an array, except via an explicit array index. Violations will result in errors. Note this field only applies to index with MONGODB_COMPATIBLE_API ApiScope.
- name: shardCount
value: integer
description: >
Optional. The number of shards for the index.
- name: unique
value: boolean
description: >
Optional. Whether it is an unique index. Unique index ensures all values for the indexed field(s) are unique across documents.
DELETE
examples
- delete
Deletes a composite index.
DELETE FROM google.firestore.indexes
WHERE projectsId = '{{ projectsId }}' --required
AND databasesId = '{{ databasesId }}' --required
AND collectionGroupsId = '{{ collectionGroupsId }}' --required
AND indexesId = '{{ indexesId }}' --required;