Class: Google::Apis::FirestoreV1beta1::StructuredQuery

Inherits:
Object
  • Object
show all
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

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ StructuredQuery

Returns a new instance of StructuredQuery.



3080
3081
3082
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3080

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#end_atGoogle::Apis::FirestoreV1beta1::Cursor

A position in a query result set. Corresponds to the JSON property endAt



3013
3014
3015
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3013

def end_at
  @end_at
end

#find_nearestGoogle::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



3021
3022
3023
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3021

def find_nearest
  @find_nearest
end

#fromArray<Google::Apis::FirestoreV1beta1::CollectionSelector>

The collections to query. Corresponds to the JSON property from



3026
3027
3028
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3026

def from
  @from
end

#limitFixnum

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

Returns:

  • (Fixnum)


3032
3033
3034
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3032

def limit
  @limit
end

#offsetFixnum

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

Returns:

  • (Fixnum)


3040
3041
3042
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3040

def offset
  @offset
end

#order_byArray<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



3063
3064
3065
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3063

def order_by
  @order_by
end

#selectGoogle::Apis::FirestoreV1beta1::Projection

The projection of document's fields to return. Corresponds to the JSON property select



3068
3069
3070
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3068

def select
  @select
end

#start_atGoogle::Apis::FirestoreV1beta1::Cursor

A position in a query result set. Corresponds to the JSON property startAt



3073
3074
3075
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3073

def start_at
  @start_at
end

#whereGoogle::Apis::FirestoreV1beta1::Filter

A filter. Corresponds to the JSON property where



3078
3079
3080
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3078

def where
  @where
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
# File 'lib/google/apis/firestore_v1beta1/classes.rb', line 3085

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