Class: Google::Apis::FirestoreV1::StructuredQuery

Inherits:
Object
  • Object
show all
Includes:
Core::Hashable, Core::JsonObjectSupport
Defined in:
lib/google/apis/firestore_v1/classes.rb,
lib/google/apis/firestore_v1/representations.rb,
lib/google/apis/firestore_v1/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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ StructuredQuery

Returns a new instance of StructuredQuery.



3353
3354
3355
# File 'lib/google/apis/firestore_v1/classes.rb', line 3353

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

Instance Attribute Details

#end_atGoogle::Apis::FirestoreV1::Cursor

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



3300
3301
3302
# File 'lib/google/apis/firestore_v1/classes.rb', line 3300

def end_at
  @end_at
end

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

The collections to query. Corresponds to the JSON property from



3305
3306
3307
# File 'lib/google/apis/firestore_v1/classes.rb', line 3305

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)


3311
3312
3313
# File 'lib/google/apis/firestore_v1/classes.rb', line 3311

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)


3319
3320
3321
# File 'lib/google/apis/firestore_v1/classes.rb', line 3319

def offset
  @offset
end

#order_byArray<Google::Apis::FirestoreV1::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 Corresponds to the JSON property orderBy



3336
3337
3338
# File 'lib/google/apis/firestore_v1/classes.rb', line 3336

def order_by
  @order_by
end

#selectGoogle::Apis::FirestoreV1::Projection

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



3341
3342
3343
# File 'lib/google/apis/firestore_v1/classes.rb', line 3341

def select
  @select
end

#start_atGoogle::Apis::FirestoreV1::Cursor

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



3346
3347
3348
# File 'lib/google/apis/firestore_v1/classes.rb', line 3346

def start_at
  @start_at
end

#whereGoogle::Apis::FirestoreV1::Filter

A filter. Corresponds to the JSON property where



3351
3352
3353
# File 'lib/google/apis/firestore_v1/classes.rb', line 3351

def where
  @where
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
# File 'lib/google/apis/firestore_v1/classes.rb', line 3358

def update!(**args)
  @end_at = args[:end_at] if args.key?(:end_at)
  @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