Skip to main content

indexes

Creates, updates, deletes, gets or lists an indexes resource.

Overview​

Nameindexes
TypeResource
Idgoogle.firestore.indexes

Fields​

The following fields are returned by SELECT queries:

NameDatatypeDescription
namestringA server-defined name for this index. Output only. When used in the google.firestore.admin.v1.Index resource, the value is of the form: projects/{project_id}/databases/{database_id}/collectionGroups/{collection_id}/indexes/{index_id} When used in the google.firestore.admin.v1.Field resource, the value is empty.
apiScopestringThe API scope supported by this index. (ANY_API, DATASTORE_MODE_API, MONGODB_COMPATIBLE_API)
densitystringImmutable. The density configuration of the index. (DENSITY_UNSPECIFIED, SPARSE_ALL, SPARSE_ANY, DENSE)
fieldsarrayThe fields supported by this index. At most 100 fields may be specified. In Standard edition databases only: - At least 2 fields must be specified. - 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 the index is not directional, the __name__ will be ordered ASCENDING (unless explicitly specified).
multikeybooleanOptional. 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.
queryScopestringIndexes 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. (QUERY_SCOPE_UNSPECIFIED, COLLECTION, COLLECTION_GROUP, COLLECTION_RECURSIVE)
searchIndexOptionsobjectOptional. Options for search indexes that are at the index definition level. This field is only currently supported for indexes with MONGODB_COMPATIBLE_API ApiScope. (id: GoogleFirestoreAdminV1SearchIndexOptions)
shardCountinteger (int32)Optional. The number of shards for the index.
statestringOutput only. The serving state of the index. (STATE_UNSPECIFIED, CREATING, READY, NEEDS_REPAIR)
uniquebooleanOptional. 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:

NameAccessible byRequired ParamsOptional ParamsDescription
getselectprojectsId, databasesId, collectionGroupsId, indexesIdGets a composite index.
listselectprojectsId, databasesId, collectionGroupsIdfilter, pageSize, pageTokenLists composite indexes.
createinsertprojectsId, databasesId, collectionGroupsIdCreates 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.
deletedeleteprojectsId, databasesId, collectionGroupsId, indexesIdDeletes 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.

NameDatatypeDescription
collectionGroupsIdstring
databasesIdstring
indexesIdstring
projectsIdstring
filterstring
pageSizeinteger (int32)
pageTokenstring

SELECT examples​

Gets a composite index.

SELECT
name,
apiScope,
density,
fields,
multikey,
queryScope,
searchIndexOptions,
shardCount,
state,
unique
FROM google.firestore.indexes
WHERE projectsId = '{{ projectsId }}' -- required
AND databasesId = '{{ databasesId }}' -- required
AND collectionGroupsId = '{{ collectionGroupsId }}' -- required
AND indexesId = '{{ indexesId }}' -- required
;

INSERT examples​

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__apiScope,
data__density,
data__fields,
data__multikey,
data__name,
data__queryScope,
data__searchIndexOptions,
data__shardCount,
data__state,
data__unique,
projectsId,
databasesId,
collectionGroupsId
)
SELECT
'{{ apiScope }}',
'{{ density }}',
'{{ fields }}',
{{ multikey }},
'{{ name }}',
'{{ queryScope }}',
'{{ searchIndexOptions }}',
{{ shardCount }},
'{{ state }}',
{{ unique }},
'{{ projectsId }}',
'{{ databasesId }}',
'{{ collectionGroupsId }}'
RETURNING
name,
done,
error,
metadata,
response
;

DELETE examples​

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
;