google-cloud-datastore 0.21.0 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.yardopts +7 -0
- data/LICENSE +201 -0
- data/README.md +75 -0
- data/lib/google-cloud-datastore.rb +2 -2
- data/lib/google/cloud/datastore.rb +24 -0
- data/lib/google/cloud/datastore/commit.rb +17 -2
- data/lib/google/cloud/datastore/cursor.rb +1 -1
- data/lib/google/cloud/datastore/dataset.rb +143 -4
- data/lib/google/cloud/datastore/dataset/lookup_results.rb +21 -5
- data/lib/google/cloud/datastore/dataset/query_results.rb +14 -4
- data/lib/google/cloud/datastore/entity.rb +88 -9
- data/lib/google/cloud/datastore/gql_query.rb +12 -0
- data/lib/google/cloud/datastore/key.rb +21 -1
- data/lib/google/cloud/datastore/query.rb +82 -0
- data/lib/google/cloud/datastore/service.rb +2 -2
- data/lib/google/cloud/datastore/transaction.rb +45 -11
- data/lib/google/cloud/datastore/v1.rb +1 -1
- data/lib/google/cloud/datastore/v1/{datastore_api.rb → datastore_client.rb} +42 -42
- data/lib/google/cloud/datastore/v1/doc/google/datastore/v1/datastore.rb +240 -0
- data/lib/google/cloud/datastore/v1/doc/google/datastore/v1/entity.rb +187 -0
- data/lib/google/cloud/datastore/v1/doc/google/datastore/v1/query.rb +292 -0
- data/lib/google/cloud/datastore/v1/doc/google/protobuf/wrappers.rb +89 -0
- data/lib/google/cloud/datastore/version.rb +1 -1
- metadata +13 -6
@@ -34,6 +34,10 @@ module Google
|
|
34
34
|
# Properties, and Keys
|
35
35
|
#
|
36
36
|
# @example Create a new entity using a block:
|
37
|
+
# require "google/cloud/datastore"
|
38
|
+
#
|
39
|
+
# datastore = Google::Cloud::Datastore.new
|
40
|
+
#
|
37
41
|
# task = datastore.entity "Task", "sampleTask" do |t|
|
38
42
|
# t["type"] = "Personal"
|
39
43
|
# t["created"] = Time.now
|
@@ -44,6 +48,10 @@ module Google
|
|
44
48
|
# end
|
45
49
|
#
|
46
50
|
# @example Create a new entity belonging to an existing parent entity:
|
51
|
+
# require "google/cloud/datastore"
|
52
|
+
#
|
53
|
+
# datastore = Google::Cloud::Datastore.new
|
54
|
+
#
|
47
55
|
# task_key = datastore.key "Task", "sampleTask"
|
48
56
|
# task_key.parent = datastore.key "TaskList", "default"
|
49
57
|
#
|
@@ -84,6 +92,7 @@ module Google
|
|
84
92
|
# require "google/cloud/datastore"
|
85
93
|
#
|
86
94
|
# datastore = Google::Cloud::Datastore.new
|
95
|
+
#
|
87
96
|
# task = datastore.find "Task", "sampleTask"
|
88
97
|
# task["description"] #=> "Learn Cloud Datastore"
|
89
98
|
#
|
@@ -91,6 +100,7 @@ module Google
|
|
91
100
|
# require "google/cloud/datastore"
|
92
101
|
#
|
93
102
|
# datastore = Google::Cloud::Datastore.new
|
103
|
+
#
|
94
104
|
# task = datastore.find "Task", "sampleTask"
|
95
105
|
# task[:description] #=> "Learn Cloud Datastore"
|
96
106
|
#
|
@@ -98,23 +108,25 @@ module Google
|
|
98
108
|
# require "google/cloud/datastore"
|
99
109
|
#
|
100
110
|
# datastore = Google::Cloud::Datastore.new
|
111
|
+
#
|
101
112
|
# user = datastore.find "User", "alice"
|
102
|
-
# user["avatar"] #=> StringIO
|
113
|
+
# user["avatar"].class #=> StringIO
|
103
114
|
#
|
104
115
|
# @example Getting a geo point value returns a Hash:
|
105
116
|
# require "google/cloud/datastore"
|
106
117
|
#
|
107
118
|
# datastore = Google::Cloud::Datastore.new
|
119
|
+
#
|
108
120
|
# user = datastore.find "User", "alice"
|
109
|
-
# user["location"] #=>
|
110
|
-
# # latitude: 37.4220041 }
|
121
|
+
# user["location"].keys #=> [:latitude, :longitude]
|
111
122
|
#
|
112
123
|
# @example Getting a blob value returns a StringIO object:
|
113
124
|
# require "google/cloud/datastore"
|
114
125
|
#
|
115
126
|
# datastore = Google::Cloud::Datastore.new
|
127
|
+
#
|
116
128
|
# user = datastore.find "User", "alice"
|
117
|
-
# user["avatar"] #=> StringIO
|
129
|
+
# user["avatar"].class #=> StringIO
|
118
130
|
#
|
119
131
|
def [] prop_name
|
120
132
|
properties[prop_name]
|
@@ -137,6 +149,7 @@ module Google
|
|
137
149
|
# require "google/cloud/datastore"
|
138
150
|
#
|
139
151
|
# datastore = Google::Cloud::Datastore.new
|
152
|
+
#
|
140
153
|
# task = datastore.find "Task", "sampleTask"
|
141
154
|
# task["description"] = "Learn Cloud Datastore"
|
142
155
|
# task["tags"] = ["fun", "programming"]
|
@@ -145,6 +158,7 @@ module Google
|
|
145
158
|
# require "google/cloud/datastore"
|
146
159
|
#
|
147
160
|
# datastore = Google::Cloud::Datastore.new
|
161
|
+
#
|
148
162
|
# task = datastore.find "Task", "sampleTask"
|
149
163
|
# task[:description] = "Learn Cloud Datastore"
|
150
164
|
# task[:tags] = ["fun", "programming"]
|
@@ -153,14 +167,16 @@ module Google
|
|
153
167
|
# require "google/cloud/datastore"
|
154
168
|
#
|
155
169
|
# datastore = Google::Cloud::Datastore.new
|
170
|
+
#
|
156
171
|
# user = datastore.find "User", "alice"
|
157
172
|
# user["avatar"] = File.open "/avatars/alice.png"
|
158
|
-
# user["avatar"] #=> StringIO
|
173
|
+
# user["avatar"].class #=> StringIO
|
159
174
|
#
|
160
175
|
# @example Setting a geo point value using a Hash:
|
161
176
|
# require "google/cloud/datastore"
|
162
177
|
#
|
163
178
|
# datastore = Google::Cloud::Datastore.new
|
179
|
+
#
|
164
180
|
# user = datastore.find "User", "alice"
|
165
181
|
# user["location"] = { longitude: -122.0862462, latitude: 37.4220041 }
|
166
182
|
#
|
@@ -168,9 +184,10 @@ module Google
|
|
168
184
|
# require "google/cloud/datastore"
|
169
185
|
#
|
170
186
|
# datastore = Google::Cloud::Datastore.new
|
187
|
+
#
|
171
188
|
# user = datastore.find "User", "alice"
|
172
189
|
# user["avatar"] = File.open "/avatars/alice.png"
|
173
|
-
# user["avatar"] #=> StringIO
|
190
|
+
# user["avatar"].class #=> StringIO
|
174
191
|
#
|
175
192
|
def []= prop_name, prop_value
|
176
193
|
properties[prop_name] = prop_value
|
@@ -183,6 +200,12 @@ module Google
|
|
183
200
|
# @return [Google::Cloud::Datastore::Properties]
|
184
201
|
#
|
185
202
|
# @example
|
203
|
+
# require "google/cloud/datastore"
|
204
|
+
#
|
205
|
+
# datastore = Google::Cloud::Datastore.new
|
206
|
+
#
|
207
|
+
# task = datastore.find "Task", "sampleTask"
|
208
|
+
#
|
186
209
|
# task.properties[:description] = "Learn Cloud Datastore"
|
187
210
|
# task.properties["description"] #=> "Learn Cloud Datastore"
|
188
211
|
#
|
@@ -191,15 +214,33 @@ module Google
|
|
191
214
|
# end
|
192
215
|
#
|
193
216
|
# @example A property's existence can be determined by calling `exist?`:
|
217
|
+
# require "google/cloud/datastore"
|
218
|
+
#
|
219
|
+
# datastore = Google::Cloud::Datastore.new
|
220
|
+
#
|
221
|
+
# task = datastore.find "Task", "sampleTask"
|
222
|
+
#
|
194
223
|
# task.properties.exist? :description #=> true
|
195
224
|
# task.properties.exist? "description" #=> true
|
196
225
|
# task.properties.exist? :expiration #=> false
|
197
226
|
#
|
198
227
|
# @example A property can be removed from the entity:
|
228
|
+
# require "google/cloud/datastore"
|
229
|
+
#
|
230
|
+
# datastore = Google::Cloud::Datastore.new
|
231
|
+
#
|
232
|
+
# task = datastore.find "Task", "sampleTask"
|
233
|
+
#
|
199
234
|
# task.properties.delete :description
|
200
|
-
# task
|
235
|
+
# datastore.update task
|
201
236
|
#
|
202
237
|
# @example The properties can be converted to a hash:
|
238
|
+
# require "google/cloud/datastore"
|
239
|
+
#
|
240
|
+
# datastore = Google::Cloud::Datastore.new
|
241
|
+
#
|
242
|
+
# task = datastore.find "Task", "sampleTask"
|
243
|
+
#
|
203
244
|
# prop_hash = task.properties.to_h
|
204
245
|
#
|
205
246
|
attr_reader :properties
|
@@ -214,6 +255,7 @@ module Google
|
|
214
255
|
# require "google/cloud/datastore"
|
215
256
|
#
|
216
257
|
# datastore = Google::Cloud::Datastore.new
|
258
|
+
#
|
217
259
|
# task = Google::Cloud::Datastore::Entity.new
|
218
260
|
# task.key = datastore.key "Task"
|
219
261
|
# datastore.save task
|
@@ -222,11 +264,12 @@ module Google
|
|
222
264
|
# require "google/cloud/datastore"
|
223
265
|
#
|
224
266
|
# datastore = Google::Cloud::Datastore.new
|
267
|
+
#
|
225
268
|
# task = datastore.find "Task", "sampleTask"
|
226
269
|
# task.persisted? #=> true
|
227
|
-
# task.key = datastore.key "Task" #=> RuntimeError
|
270
|
+
# task.key = datastore.key "Task" #=> raise RuntimeError
|
228
271
|
# task.key.frozen? #=> true
|
229
|
-
# task.key.id = 9876543221 #=> RuntimeError
|
272
|
+
# task.key.id = 9876543221 #=> raise RuntimeError
|
230
273
|
#
|
231
274
|
def key= new_key
|
232
275
|
fail "This entity's key is immutable." if persisted?
|
@@ -268,10 +311,22 @@ module Google
|
|
268
311
|
# Unindexed properties
|
269
312
|
#
|
270
313
|
# @example Single property values will return a single flag setting:
|
314
|
+
# require "google/cloud/datastore"
|
315
|
+
#
|
316
|
+
# datastore = Google::Cloud::Datastore.new
|
317
|
+
#
|
318
|
+
# task = datastore.find "Task", "sampleTask"
|
319
|
+
#
|
271
320
|
# task["priority"] = 4
|
272
321
|
# task.exclude_from_indexes? "priority" #=> false
|
273
322
|
#
|
274
323
|
# @example A multi-valued property will return array of flag settings:
|
324
|
+
# require "google/cloud/datastore"
|
325
|
+
#
|
326
|
+
# datastore = Google::Cloud::Datastore.new
|
327
|
+
#
|
328
|
+
# task = datastore.find "Task", "sampleTask"
|
329
|
+
#
|
275
330
|
# task["tags"] = ["fun", "programming"]
|
276
331
|
# task.exclude_from_indexes! "tags", [true, false]
|
277
332
|
#
|
@@ -311,18 +366,42 @@ module Google
|
|
311
366
|
# Unindexed properties
|
312
367
|
#
|
313
368
|
# @example
|
369
|
+
# require "google/cloud/datastore"
|
370
|
+
#
|
371
|
+
# datastore = Google::Cloud::Datastore.new
|
372
|
+
#
|
373
|
+
# entity = datastore.find "Task", "sampleTask"
|
374
|
+
#
|
314
375
|
# entity["priority"] = 4
|
315
376
|
# entity.exclude_from_indexes! "priority", true
|
316
377
|
#
|
317
378
|
# @example Multi-valued properties can be given multiple exclude flags:
|
379
|
+
# require "google/cloud/datastore"
|
380
|
+
#
|
381
|
+
# datastore = Google::Cloud::Datastore.new
|
382
|
+
#
|
383
|
+
# entity = datastore.find "Task", "sampleTask"
|
384
|
+
#
|
318
385
|
# entity["tags"] = ["fun", "programming"]
|
319
386
|
# entity.exclude_from_indexes! "tags", [true, false]
|
320
387
|
#
|
321
388
|
# @example Or, a single flag can be applied to all values in a property:
|
389
|
+
# require "google/cloud/datastore"
|
390
|
+
#
|
391
|
+
# datastore = Google::Cloud::Datastore.new
|
392
|
+
#
|
393
|
+
# entity = datastore.find "Task", "sampleTask"
|
394
|
+
#
|
322
395
|
# entity["tags"] = ["fun", "programming"]
|
323
396
|
# entity.exclude_from_indexes! "tags", true
|
324
397
|
#
|
325
398
|
# @example Flags can also be set with a block:
|
399
|
+
# require "google/cloud/datastore"
|
400
|
+
#
|
401
|
+
# datastore = Google::Cloud::Datastore.new
|
402
|
+
#
|
403
|
+
# entity = datastore.find "Task", "sampleTask"
|
404
|
+
#
|
326
405
|
# entity["priority"] = 4
|
327
406
|
# entity.exclude_from_indexes! "priority" do |priority|
|
328
407
|
# priority > 4
|
@@ -31,6 +31,10 @@ module Google
|
|
31
31
|
# Reference
|
32
32
|
#
|
33
33
|
# @example
|
34
|
+
# require "google/cloud/datastore"
|
35
|
+
#
|
36
|
+
# datastore = Google::Cloud::Datastore.new
|
37
|
+
#
|
34
38
|
# gql_query = Google::Cloud::Datastore::GqlQuery.new
|
35
39
|
# gql_query.query_string = "SELECT * FROM Task ORDER BY created ASC"
|
36
40
|
# tasks = datastore.run gql_query
|
@@ -40,6 +44,8 @@ module Google
|
|
40
44
|
# Returns a new GqlQuery instance.
|
41
45
|
#
|
42
46
|
# @example
|
47
|
+
# require "google/cloud/datastore"
|
48
|
+
#
|
43
49
|
# gql_query = Google::Cloud::Datastore::GqlQuery.new
|
44
50
|
#
|
45
51
|
def initialize
|
@@ -102,6 +108,8 @@ module Google
|
|
102
108
|
# literal values
|
103
109
|
#
|
104
110
|
# @example
|
111
|
+
# require "google/cloud/datastore"
|
112
|
+
#
|
105
113
|
# gql_query = Google::Cloud::Datastore::GqlQuery.new
|
106
114
|
# gql_query.query_string = "SELECT * FROM Task " \
|
107
115
|
# "WHERE completed = false AND priority = 4"
|
@@ -138,6 +146,8 @@ module Google
|
|
138
146
|
# names in the query string to valid GQL arguments
|
139
147
|
#
|
140
148
|
# @example
|
149
|
+
# require "google/cloud/datastore"
|
150
|
+
#
|
141
151
|
# gql_query = Google::Cloud::Datastore::GqlQuery.new
|
142
152
|
# gql_query.query_string = "SELECT * FROM Task " \
|
143
153
|
# "WHERE done = @done " \
|
@@ -186,6 +196,8 @@ module Google
|
|
186
196
|
# of the numbered binding sites in the query string
|
187
197
|
#
|
188
198
|
# @example
|
199
|
+
# require "google/cloud/datastore"
|
200
|
+
#
|
189
201
|
# gql_query = Google::Cloud::Datastore::GqlQuery.new
|
190
202
|
# gql_query.query_string = "SELECT * FROM Task" \
|
191
203
|
# "WHERE completed = @1 AND priority = @2"
|
@@ -25,6 +25,8 @@ module Google
|
|
25
25
|
# integer numeric ID, assigned automatically by Datastore.
|
26
26
|
#
|
27
27
|
# @example
|
28
|
+
# require "google/cloud/datastore"
|
29
|
+
#
|
28
30
|
# task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask"
|
29
31
|
#
|
30
32
|
class Key
|
@@ -34,6 +36,8 @@ module Google
|
|
34
36
|
# @return [String]
|
35
37
|
#
|
36
38
|
# @example
|
39
|
+
# require "google/cloud/datastore"
|
40
|
+
#
|
37
41
|
# key = Google::Cloud::Datastore::Key.new "TaskList"
|
38
42
|
# key.kind #=> "TaskList"
|
39
43
|
# key.kind = "Task"
|
@@ -88,6 +92,8 @@ module Google
|
|
88
92
|
# @return [Google::Cloud::Datastore::Dataset::Key]
|
89
93
|
#
|
90
94
|
# @example
|
95
|
+
# require "google/cloud/datastore"
|
96
|
+
#
|
91
97
|
# task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask"
|
92
98
|
#
|
93
99
|
def initialize kind = nil, id_or_name = nil
|
@@ -106,6 +112,8 @@ module Google
|
|
106
112
|
# @return [Integer, nil]
|
107
113
|
#
|
108
114
|
# @example
|
115
|
+
# require "google/cloud/datastore"
|
116
|
+
#
|
109
117
|
# task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask"
|
110
118
|
# task_key.id #=> nil
|
111
119
|
# task_key.name #=> "sampleTask"
|
@@ -124,6 +132,8 @@ module Google
|
|
124
132
|
# @return [Integer, nil]
|
125
133
|
#
|
126
134
|
# @example
|
135
|
+
# require "google/cloud/datastore"
|
136
|
+
#
|
127
137
|
# task_key = Google::Cloud::Datastore::Key.new "Task", 123456
|
128
138
|
# task_key.id #=> 123456
|
129
139
|
#
|
@@ -136,6 +146,8 @@ module Google
|
|
136
146
|
# @return [String, nil]
|
137
147
|
#
|
138
148
|
# @example
|
149
|
+
# require "google/cloud/datastore"
|
150
|
+
#
|
139
151
|
# task_key = Google::Cloud::Datastore::Key.new "Task", 123456
|
140
152
|
# task_key.id #=> 123456
|
141
153
|
# task_key.name #=> nil
|
@@ -154,6 +166,8 @@ module Google
|
|
154
166
|
# @return [String, nil]
|
155
167
|
#
|
156
168
|
# @example
|
169
|
+
# require "google/cloud/datastore"
|
170
|
+
#
|
157
171
|
# task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask"
|
158
172
|
# task_key.name #=> "sampleTask"
|
159
173
|
#
|
@@ -165,11 +179,15 @@ module Google
|
|
165
179
|
# @return [Key, nil]
|
166
180
|
#
|
167
181
|
# @example
|
182
|
+
# require "google/cloud/datastore"
|
183
|
+
#
|
168
184
|
# parent_key = Google::Cloud::Datastore::Key.new "TaskList", "default"
|
169
185
|
# task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask"
|
170
186
|
# task_key.parent = parent_key
|
171
187
|
#
|
172
188
|
# @example With multiple levels:
|
189
|
+
# require "google/cloud/datastore"
|
190
|
+
#
|
173
191
|
# user_key = Google::Cloud::Datastore::Key.new "User", "alice"
|
174
192
|
# list_key = Google::Cloud::Datastore::Key.new "TaskList", "default"
|
175
193
|
# task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask"
|
@@ -196,7 +214,7 @@ module Google
|
|
196
214
|
# query = datastore.query("Task").
|
197
215
|
# ancestor(task_list)
|
198
216
|
# lists = datastore.run query
|
199
|
-
# lists.first.key.parent
|
217
|
+
# lists.first.key.parent # Key("TaskList", "default")
|
200
218
|
#
|
201
219
|
attr_reader :parent
|
202
220
|
|
@@ -208,6 +226,8 @@ module Google
|
|
208
226
|
# @return [Array<Array<(String, String)>>]
|
209
227
|
#
|
210
228
|
# @example
|
229
|
+
# require "google/cloud/datastore"
|
230
|
+
#
|
211
231
|
# parent_key = Google::Cloud::Datastore::Key.new "TaskList", "default"
|
212
232
|
# task_key = Google::Cloud::Datastore::Key.new "Task", "sampleTask"
|
213
233
|
# task_key.parent = parent_key
|
@@ -30,6 +30,10 @@ module Google
|
|
30
30
|
# Datastore Metadata
|
31
31
|
#
|
32
32
|
# @example
|
33
|
+
# require "google/cloud/datastore"
|
34
|
+
#
|
35
|
+
# datastore = Google::Cloud::Datastore.new
|
36
|
+
#
|
33
37
|
# query = Google::Cloud::Datastore::Query.new
|
34
38
|
# query.kind("Task").
|
35
39
|
# where("done", "=", false).
|
@@ -43,6 +47,8 @@ module Google
|
|
43
47
|
# Returns a new query object.
|
44
48
|
#
|
45
49
|
# @example
|
50
|
+
# require "google/cloud/datastore"
|
51
|
+
#
|
46
52
|
# query = Google::Cloud::Datastore::Query.new
|
47
53
|
#
|
48
54
|
def initialize
|
@@ -57,6 +63,10 @@ module Google
|
|
57
63
|
# queries](https://cloud.google.com/datastore/docs/concepts/metadataqueries).
|
58
64
|
#
|
59
65
|
# @example
|
66
|
+
# require "google/cloud/datastore"
|
67
|
+
#
|
68
|
+
# datastore = Google::Cloud::Datastore.new
|
69
|
+
#
|
60
70
|
# query = Google::Cloud::Datastore::Query.new
|
61
71
|
# query.kind "Task"
|
62
72
|
#
|
@@ -76,6 +86,10 @@ module Google
|
|
76
86
|
# Add a property filter to the query.
|
77
87
|
#
|
78
88
|
# @example
|
89
|
+
# require "google/cloud/datastore"
|
90
|
+
#
|
91
|
+
# datastore = Google::Cloud::Datastore.new
|
92
|
+
#
|
79
93
|
# query = Google::Cloud::Datastore::Query.new
|
80
94
|
# query.kind("Task").
|
81
95
|
# where("done", "=", false)
|
@@ -83,6 +97,10 @@ module Google
|
|
83
97
|
# tasks = datastore.run query
|
84
98
|
#
|
85
99
|
# @example Add a composite property filter:
|
100
|
+
# require "google/cloud/datastore"
|
101
|
+
#
|
102
|
+
# datastore = Google::Cloud::Datastore.new
|
103
|
+
#
|
86
104
|
# query = Google::Cloud::Datastore::Query.new
|
87
105
|
# query.kind("Task").
|
88
106
|
# where("done", "=", false).
|
@@ -91,6 +109,10 @@ module Google
|
|
91
109
|
# tasks = datastore.run query
|
92
110
|
#
|
93
111
|
# @example Add an inequality filter on a **single** property only:
|
112
|
+
# require "google/cloud/datastore"
|
113
|
+
#
|
114
|
+
# datastore = Google::Cloud::Datastore.new
|
115
|
+
#
|
94
116
|
# query = Google::Cloud::Datastore::Query.new
|
95
117
|
# query.kind("Task").
|
96
118
|
# where("created", ">=", Time.utc(1990, 1, 1)).
|
@@ -99,6 +121,10 @@ module Google
|
|
99
121
|
# tasks = datastore.run query
|
100
122
|
#
|
101
123
|
# @example Add a composite filter on an array property:
|
124
|
+
# require "google/cloud/datastore"
|
125
|
+
#
|
126
|
+
# datastore = Google::Cloud::Datastore.new
|
127
|
+
#
|
102
128
|
# query = Google::Cloud::Datastore::Query.new
|
103
129
|
# query.kind("Task").
|
104
130
|
# where("tag", "=", "fun").
|
@@ -107,6 +133,10 @@ module Google
|
|
107
133
|
# tasks = datastore.run query
|
108
134
|
#
|
109
135
|
# @example Add an inequality filter on an array property :
|
136
|
+
# require "google/cloud/datastore"
|
137
|
+
#
|
138
|
+
# datastore = Google::Cloud::Datastore.new
|
139
|
+
#
|
110
140
|
# query = Google::Cloud::Datastore::Query.new
|
111
141
|
# query.kind("Task").
|
112
142
|
# where("tag", ">", "learn").
|
@@ -115,6 +145,10 @@ module Google
|
|
115
145
|
# tasks = datastore.run query
|
116
146
|
#
|
117
147
|
# @example Add a key filter using the special property `__key__`:
|
148
|
+
# require "google/cloud/datastore"
|
149
|
+
#
|
150
|
+
# datastore = Google::Cloud::Datastore.new
|
151
|
+
#
|
118
152
|
# query = Google::Cloud::Datastore::Query.new
|
119
153
|
# query.kind("Task").
|
120
154
|
# where("__key__", ">", datastore.key("Task", "someTask"))
|
@@ -122,6 +156,10 @@ module Google
|
|
122
156
|
# tasks = datastore.run query
|
123
157
|
#
|
124
158
|
# @example Add a key filter to a *kindless* query:
|
159
|
+
# require "google/cloud/datastore"
|
160
|
+
#
|
161
|
+
# datastore = Google::Cloud::Datastore.new
|
162
|
+
#
|
125
163
|
# last_seen_key = datastore.key "Task", "a"
|
126
164
|
# query = Google::Cloud::Datastore::Query.new
|
127
165
|
# query.where("__key__", ">", last_seen_key)
|
@@ -152,6 +190,10 @@ module Google
|
|
152
190
|
# Add a filter for entities that inherit from a key.
|
153
191
|
#
|
154
192
|
# @example
|
193
|
+
# require "google/cloud/datastore"
|
194
|
+
#
|
195
|
+
# datastore = Google::Cloud::Datastore.new
|
196
|
+
#
|
155
197
|
# task_list_key = datastore.key "TaskList", "default"
|
156
198
|
#
|
157
199
|
# query = Google::Cloud::Datastore::Query.new
|
@@ -173,6 +215,10 @@ module Google
|
|
173
215
|
# of a string or symbol that starts with "d".
|
174
216
|
#
|
175
217
|
# @example With ascending sort order:
|
218
|
+
# require "google/cloud/datastore"
|
219
|
+
#
|
220
|
+
# datastore = Google::Cloud::Datastore.new
|
221
|
+
#
|
176
222
|
# query = Google::Cloud::Datastore::Query.new
|
177
223
|
# query.kind("Task").
|
178
224
|
# order("created")
|
@@ -180,6 +226,10 @@ module Google
|
|
180
226
|
# tasks = datastore.run query
|
181
227
|
#
|
182
228
|
# @example With descending sort order:
|
229
|
+
# require "google/cloud/datastore"
|
230
|
+
#
|
231
|
+
# datastore = Google::Cloud::Datastore.new
|
232
|
+
#
|
183
233
|
# query = Google::Cloud::Datastore::Query.new
|
184
234
|
# query.kind("Task").
|
185
235
|
# order("created", :desc)
|
@@ -187,6 +237,10 @@ module Google
|
|
187
237
|
# tasks = datastore.run query
|
188
238
|
#
|
189
239
|
# @example With multiple sort orders:
|
240
|
+
# require "google/cloud/datastore"
|
241
|
+
#
|
242
|
+
# datastore = Google::Cloud::Datastore.new
|
243
|
+
#
|
190
244
|
# query = Google::Cloud::Datastore::Query.new
|
191
245
|
# query.kind("Task").
|
192
246
|
# order("priority", :desc).
|
@@ -195,6 +249,10 @@ module Google
|
|
195
249
|
# tasks = datastore.run query
|
196
250
|
#
|
197
251
|
# @example A property used in inequality filter must be ordered first:
|
252
|
+
# require "google/cloud/datastore"
|
253
|
+
#
|
254
|
+
# datastore = Google::Cloud::Datastore.new
|
255
|
+
#
|
198
256
|
# query = Google::Cloud::Datastore::Query.new
|
199
257
|
# query.kind("Task").
|
200
258
|
# where("priority", ">", 3).
|
@@ -217,6 +275,10 @@ module Google
|
|
217
275
|
# Set a limit on the number of results to be returned.
|
218
276
|
#
|
219
277
|
# @example
|
278
|
+
# require "google/cloud/datastore"
|
279
|
+
#
|
280
|
+
# datastore = Google::Cloud::Datastore.new
|
281
|
+
#
|
220
282
|
# query = Google::Cloud::Datastore::Query.new
|
221
283
|
# query.kind("Task").
|
222
284
|
# limit(5)
|
@@ -233,6 +295,10 @@ module Google
|
|
233
295
|
# Set an offset for the results to be returned.
|
234
296
|
#
|
235
297
|
# @example
|
298
|
+
# require "google/cloud/datastore"
|
299
|
+
#
|
300
|
+
# datastore = Google::Cloud::Datastore.new
|
301
|
+
#
|
236
302
|
# query = Google::Cloud::Datastore::Query.new
|
237
303
|
# query.kind("Task").
|
238
304
|
# limit(5).
|
@@ -250,6 +316,10 @@ module Google
|
|
250
316
|
# Set the cursor to start the results at.
|
251
317
|
#
|
252
318
|
# @example
|
319
|
+
# require "google/cloud/datastore"
|
320
|
+
#
|
321
|
+
# datastore = Google::Cloud::Datastore.new
|
322
|
+
#
|
253
323
|
# query = Google::Cloud::Datastore::Query.new
|
254
324
|
# query.kind("Task").
|
255
325
|
# limit(page_size).
|
@@ -274,6 +344,10 @@ module Google
|
|
274
344
|
# Retrieve only select properties from the matched entities.
|
275
345
|
#
|
276
346
|
# @example
|
347
|
+
# require "google/cloud/datastore"
|
348
|
+
#
|
349
|
+
# datastore = Google::Cloud::Datastore.new
|
350
|
+
#
|
277
351
|
# query = Google::Cloud::Datastore::Query.new
|
278
352
|
# query.kind("Task").
|
279
353
|
# select("priority", "percent_complete")
|
@@ -286,6 +360,10 @@ module Google
|
|
286
360
|
# end
|
287
361
|
#
|
288
362
|
# @example A keys-only query using the special property `__key__`:
|
363
|
+
# require "google/cloud/datastore"
|
364
|
+
#
|
365
|
+
# datastore = Google::Cloud::Datastore.new
|
366
|
+
#
|
289
367
|
# query = Google::Cloud::Datastore::Query.new
|
290
368
|
# query.kind("Task").
|
291
369
|
# select("__key__")
|
@@ -308,6 +386,10 @@ module Google
|
|
308
386
|
# Group results by a list of properties.
|
309
387
|
#
|
310
388
|
# @example
|
389
|
+
# require "google/cloud/datastore"
|
390
|
+
#
|
391
|
+
# datastore = Google::Cloud::Datastore.new
|
392
|
+
#
|
311
393
|
# query = Google::Cloud::Datastore::Query.new
|
312
394
|
# query.kind("Task").
|
313
395
|
# distinct_on("type", "priority").
|