Class: Google::Apis::FirestoreV1beta1::StructuredQuery
- Inherits:
-
Object
- Object
- Google::Apis::FirestoreV1beta1::StructuredQuery
- Includes:
- Core::Hashable, Core::JsonObjectSupport
- Defined in:
- lib/google/apis/firestore_v1beta1/classes.rb,
lib/google/apis/firestore_v1beta1/representations.rb,
lib/google/apis/firestore_v1beta1/representations.rb
Overview
A Firestore query. The query stages are executed in the following order: 1. from 2. where 3. select 4. order_by + start_at + end_at 5. offset 6. limit 7. find_nearest
Instance Attribute Summary collapse
-
#end_at ⇒ Google::Apis::FirestoreV1beta1::Cursor
A position in a query result set.
-
#find_nearest ⇒ Google::Apis::FirestoreV1beta1::FindNearest
Nearest Neighbors search config.
-
#from ⇒ Array<Google::Apis::FirestoreV1beta1::CollectionSelector>
The collections to query.
-
#limit ⇒ Fixnum
The maximum number of results to return.
-
#offset ⇒ Fixnum
The number of documents to skip before returning the first result.
-
#order_by ⇒ Array<Google::Apis::FirestoreV1beta1::Order>
The order to apply to the query results.
-
#select ⇒ Google::Apis::FirestoreV1beta1::Projection
The projection of document's fields to return.
-
#start_at ⇒ Google::Apis::FirestoreV1beta1::Cursor
A position in a query result set.
-
#where ⇒ Google::Apis::FirestoreV1beta1::Filter
A filter.
Instance Method Summary collapse
-
#initialize(**args) ⇒ StructuredQuery
constructor
A new instance of StructuredQuery.
-
#update!(**args) ⇒ Object
Update properties of this object.
Constructor Details
#initialize(**args) ⇒ StructuredQuery
Returns a new instance of StructuredQuery.
3061 3062 3063 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3061 def initialize(**args) update!(**args) end |
Instance Attribute Details
#end_at ⇒ Google::Apis::FirestoreV1beta1::Cursor
A position in a query result set.
Corresponds to the JSON property endAt
2994 2995 2996 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 2994 def end_at @end_at end |
#find_nearest ⇒ Google::Apis::FirestoreV1beta1::FindNearest
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.
Corresponds to the JSON property findNearest
3002 3003 3004 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3002 def find_nearest @find_nearest end |
#from ⇒ Array<Google::Apis::FirestoreV1beta1::CollectionSelector>
The collections to query.
Corresponds to the JSON property from
3007 3008 3009 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3007 def from @from end |
#limit ⇒ Fixnum
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.
Corresponds to the JSON property limit
3013 3014 3015 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3013 def limit @limit end |
#offset ⇒ Fixnum
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.
Corresponds to the JSON property offset
3021 3022 3023 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3021 def offset @offset end |
#order_by ⇒ Array<Google::Apis::FirestoreV1beta1::Order>
The order to apply to the query results. Callers can provide a full ordering,
a partial ordering, or no ordering at all. While Firestore will always respect
the provided order, the behavior for queries without a full ordering is
different per database edition: In Standard edition, 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
In Enterprise edition, Firestore does not guarantee a stable ordering. Instead
it will pick the most efficient ordering based on the indexes available at the
time of query execution. This will result in a different ordering for queries
that are otherwise identical. To ensure a stable ordering, always include a
unique field in the order_by clause, such as __name__.
Corresponds to the JSON property orderBy
3044 3045 3046 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3044 def order_by @order_by end |
#select ⇒ Google::Apis::FirestoreV1beta1::Projection
The projection of document's fields to return.
Corresponds to the JSON property select
3049 3050 3051 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3049 def select @select end |
#start_at ⇒ Google::Apis::FirestoreV1beta1::Cursor
A position in a query result set.
Corresponds to the JSON property startAt
3054 3055 3056 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3054 def start_at @start_at end |
#where ⇒ Google::Apis::FirestoreV1beta1::Filter
A filter.
Corresponds to the JSON property where
3059 3060 3061 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3059 def where @where end |
Instance Method Details
#update!(**args) ⇒ Object
Update properties of this object
3066 3067 3068 3069 3070 3071 3072 3073 3074 3075 3076 |
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3066 def update!(**args) @end_at = args[:end_at] if args.key?(:end_at) @find_nearest = args[:find_nearest] if args.key?(:find_nearest) @from = args[:from] if args.key?(:from) @limit = args[:limit] if args.key?(:limit) @offset = args[:offset] if args.key?(:offset) @order_by = args[:order_by] if args.key?(:order_by) @select = args[:select] if args.key?(:select) @start_at = args[:start_at] if args.key?(:start_at) @where = args[:where] if args.key?(:where) end |