StructuredQuery(mapping=None, *, ignore_unknown_fields=False, **kwargs)
A Firestore query.
The query stages are executed in the following order:
- from
- where
- select
- order_by + start_at + end_at
- offset
- limit
Attributes |
|
---|---|
Name | Description |
select |
google.cloud.firestore_v1.types.StructuredQuery.Projection
Optional sub-set of the fields to return. This acts as a DocumentMask][google.firestore.v1.DocumentMask] over the
documents returned from a query. When not set, assumes that
the caller wants all fields returned.
|
from_ |
MutableSequence[google.cloud.firestore_v1.types.StructuredQuery.CollectionSelector]
The collections to query. |
where |
google.cloud.firestore_v1.types.StructuredQuery.Filter
The filter to apply. |
order_by |
MutableSequence[google.cloud.firestore_v1.types.StructuredQuery.Order]
The order to apply to the query results. Firestore allows callers to provide a full ordering, a partial ordering, or no ordering at all. In all cases, Firestore guarantees a stable ordering through the following rules: - The order_by is required to reference all fields used
with an inequality filter.
- All fields that are required to be in the order_by
but are not already present are appended in
lexicographical ordering of the field name.
- If an order on __name__ is not specified, it is
appended by default.
Fields are appended with the same sort direction as the last
order specified, or 'ASCENDING' if no order was specified.
For example:
- ORDER BY a becomes ORDER BY a ASC, __name__ ASC
- ORDER BY a DESC becomes
ORDER BY a DESC, __name__ DESC
- WHERE a > 1 becomes
WHERE a > 1 ORDER BY a ASC, __name__ ASC
- WHERE __name__ > ... AND a > 1 becomes
WHERE __name__ > ... AND a > 1 ORDER BY a ASC, __name__ ASC
|
start_at |
google.cloud.firestore_v1.types.Cursor
A potential prefix of a position in the result set to start the query at. The ordering of the result set is based on the ORDER BY
clause of the original query.
::
SELECT * FROM k WHERE a = 1 AND b > 2 ORDER BY b ASC, __name__ ASC;
This query's results are ordered by
(b ASC, __name__ ASC) .
Cursors can reference either the full ordering or a prefix
of the location, though it cannot reference more fields than
what are in the provided ORDER BY .
Continuing off the example above, attaching the following
start cursors will have varying impact:
- START BEFORE (2, /k/123) : start the query right
before a = 1 AND b > 2 AND __name__ > /k/123 .
- START AFTER (10) : start the query right after
a = 1 AND b > 10 .
Unlike OFFSET which requires scanning over the first N
results to skip, a start cursor allows the query to begin at
a logical position. This position is not required to match
an actual result, it will scan forward from this position to
find the next document.
Requires:
- The number of values cannot be greater than the number of
fields specified in the ORDER BY clause.
|
end_at |
google.cloud.firestore_v1.types.Cursor
A potential prefix of a position in the result set to end the query at. This is similar to START_AT but with it controlling the
end position rather than the start position.
Requires:
- The number of values cannot be greater than the number of
fields specified in the ORDER BY clause.
|
offset |
int
The number of documents to skip before returning the first result. This applies after the constraints specified by the WHERE , START AT , & END AT but before the
LIMIT clause.
Requires:
- The value must be greater than or equal to zero if
specified.
|
limit |
google.protobuf.wrappers_pb2.Int32Value
The maximum number of results to return. Applies after all other constraints. Requires: - The value must be greater than or equal to zero if specified. |
find_nearest |
google.cloud.firestore_v1.types.StructuredQuery.FindNearest
Optional. A potential nearest neighbors search. Applies after all other filters and ordering. Finds the closest vector embeddings to the given query vector. |
Classes
CollectionSelector
CollectionSelector(mapping=None, *, ignore_unknown_fields=False, **kwargs)
A selection of a collection, such as messages as m1
.
CompositeFilter
CompositeFilter(mapping=None, *, ignore_unknown_fields=False, **kwargs)
A filter that merges multiple other filters using the given operator.
Direction
Direction(value)
A sort direction.
FieldFilter
FieldFilter(mapping=None, *, ignore_unknown_fields=False, **kwargs)
A filter on a specific field.
FieldReference
FieldReference(mapping=None, *, ignore_unknown_fields=False, **kwargs)
A reference to a field in a document, ex: stats.operations
.
Filter
Filter(mapping=None, *, ignore_unknown_fields=False, **kwargs)
A filter.
This message has oneof
_ fields (mutually exclusive fields).
For each oneof, at most one member field can be set at the same time.
Setting any member of the oneof automatically clears all other
members.
.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields
FindNearest
FindNearest(mapping=None, *, ignore_unknown_fields=False, **kwargs)
Nearest Neighbors search config. The ordering provided by FindNearest supersedes the order_by stage. If multiple documents have the same vector distance, the returned document order is not guaranteed to be stable between queries.
Order
Order(mapping=None, *, ignore_unknown_fields=False, **kwargs)
An order on a field.
Projection
Projection(mapping=None, *, ignore_unknown_fields=False, **kwargs)
The projection of document's fields to return.
UnaryFilter
UnaryFilter(mapping=None, *, ignore_unknown_fields=False, **kwargs)
A filter with a single operand.
.. _oneof: https://proto-plus-python.readthedocs.io/en/stable/fields.html#oneofs-mutually-exclusive-fields