mongous 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.adoc +101 -23
- data/README.ja.adoc +100 -22
- data/lib/mongous/base.rb +5 -2
- data/lib/mongous/extention.rb +24 -18
- data/lib/mongous/filter.rb +273 -230
- data/lib/mongous/version.rb +1 -1
- data/mongous.gemspec +1 -1
- data/sample/connect_auto_0.rb +9 -0
- data/sample/{query_projection_1.rb → query_select_1.rb} +14 -4
- data/sample/zbenchmark_search_3.rb +90 -0
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bf1d2cbfd528ed1a623833025cf965b5200a1f973ce1200609ae459e6167694f
|
4
|
+
data.tar.gz: 785aea052055755ec01bab88f47da0915371546d9c84f14a7876f968c79a5e3d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 706bcfdac572ee3864a70d47101a689142134f030f20c37123e33f64575bd046eea74a656bdce29487f93c441a4374d77b97e96989fd234940daaf81171ace19
|
7
|
+
data.tar.gz: e4c1f4dae468a78f376b2a89a612a7f419e39939b0b486451980857e24127e0420e2fb2dc13f8afe8a7e1cb6686a5c2c82ce3e1b6a7dc94609327f258a785d12
|
data/README.adoc
CHANGED
@@ -38,7 +38,6 @@ Or install it yourself as:
|
|
38
38
|
----
|
39
39
|
require "mongous"
|
40
40
|
|
41
|
-
Mongous.connect!
|
42
41
|
Mongous.attach! :Book
|
43
42
|
----
|
44
43
|
|
@@ -137,7 +136,15 @@ Book.find( { title: /title/ }, { projection: {_id: 0} } ).each do |book|
|
|
137
136
|
p book
|
138
137
|
end
|
139
138
|
|
140
|
-
|
139
|
+
Book.where( title: /title/ ).select( _id: 0 ).each do |book|
|
140
|
+
p book
|
141
|
+
end
|
142
|
+
|
143
|
+
Book.select( _id: 0 )[0, 5].each do |book|
|
144
|
+
p book
|
145
|
+
end
|
146
|
+
|
147
|
+
pp Book.select( :title, :price, :size )[5, 5].all
|
141
148
|
----
|
142
149
|
|
143
150
|
=== Update document
|
@@ -211,7 +218,7 @@ include Mongous::Document
|
|
211
218
|
|
212
219
|
[source,ruby]
|
213
220
|
----
|
214
|
-
self.client=(
|
221
|
+
self.client=( client )
|
215
222
|
----
|
216
223
|
|
217
224
|
* Result:
|
@@ -220,6 +227,19 @@ self.client=( _client )
|
|
220
227
|
* Parameter:
|
221
228
|
** client: Mongo::Client instance.
|
222
229
|
|
230
|
+
=== Get binded database.
|
231
|
+
|
232
|
+
[source,ruby]
|
233
|
+
----
|
234
|
+
self.client
|
235
|
+
----
|
236
|
+
|
237
|
+
* Result:
|
238
|
+
** Mongo::Client instance.
|
239
|
+
|
240
|
+
* Parameter:
|
241
|
+
** None.
|
242
|
+
|
223
243
|
=== Bind another collection.
|
224
244
|
|
225
245
|
[source,ruby]
|
@@ -233,11 +253,37 @@ self.collection_name=( _collection_name )
|
|
233
253
|
* Parameter:
|
234
254
|
** collection_name: Collection name.
|
235
255
|
|
256
|
+
=== Get binded collection name.
|
257
|
+
|
258
|
+
[source,ruby]
|
259
|
+
----
|
260
|
+
self.collection_name
|
261
|
+
----
|
262
|
+
|
263
|
+
* Result:
|
264
|
+
** Collection name string.
|
265
|
+
|
266
|
+
* Parameter:
|
267
|
+
** None.
|
268
|
+
|
269
|
+
=== Get collection.
|
270
|
+
|
271
|
+
[source,ruby]
|
272
|
+
----
|
273
|
+
self.collection( collection_name = nil )
|
274
|
+
----
|
275
|
+
|
276
|
+
* Result:
|
277
|
+
** Mongo::Collection instance.
|
278
|
+
|
279
|
+
* Parameter:
|
280
|
+
** collection_name: Tempolary collection name.
|
281
|
+
|
236
282
|
=== Declare document structure.
|
237
283
|
|
238
284
|
[source,ruby]
|
239
285
|
----
|
240
|
-
field( symbol, *attrs, **items )
|
286
|
+
self.field( symbol, *attrs, **items )
|
241
287
|
----
|
242
288
|
|
243
289
|
* Parameter:
|
@@ -258,7 +304,7 @@ field( symbol, *attrs, **items )
|
|
258
304
|
|
259
305
|
[source,ruby]
|
260
306
|
----
|
261
|
-
verify( *directives, &block )
|
307
|
+
self.verify( *directives, &block )
|
262
308
|
----
|
263
309
|
|
264
310
|
* Parameter:
|
@@ -270,7 +316,7 @@ verify( *directives, &block )
|
|
270
316
|
|
271
317
|
[source,ruby]
|
272
318
|
----
|
273
|
-
index( *symbols, **options )
|
319
|
+
self.index( *symbols, **options )
|
274
320
|
----
|
275
321
|
|
276
322
|
* Parameter:
|
@@ -281,7 +327,7 @@ index( *symbols, **options )
|
|
281
327
|
|
282
328
|
[source,ruby]
|
283
329
|
----
|
284
|
-
having?( label )
|
330
|
+
self.having?( label )
|
285
331
|
----
|
286
332
|
|
287
333
|
* Result:
|
@@ -294,22 +340,38 @@ having?( label )
|
|
294
340
|
|
295
341
|
[source,ruby]
|
296
342
|
----
|
297
|
-
filter( symbol, filter_or_cond )
|
343
|
+
self.filter( symbol, filter_or_cond )
|
298
344
|
----
|
299
345
|
|
300
346
|
* Parameter:
|
301
347
|
** symbol: Filter name.
|
302
348
|
** filter_or_cond: Filter or search criteria.
|
303
349
|
|
350
|
+
=== Select output fields.
|
351
|
+
|
352
|
+
[source,ruby]
|
353
|
+
----
|
354
|
+
Mongous::Document.select( *keys, **kwargs )
|
355
|
+
Mongous::Filter#select( *keys, **kwargs )
|
356
|
+
----
|
357
|
+
|
358
|
+
* Result:
|
359
|
+
** Mongous::Filter instance.
|
360
|
+
|
361
|
+
* Parameter:
|
362
|
+
** keys: Field symbols.
|
363
|
+
** kwargs: Field symbols and values.
|
364
|
+
|
304
365
|
=== Search condition.
|
305
366
|
|
306
367
|
[source,ruby]
|
307
368
|
----
|
308
|
-
|
369
|
+
Mongous::Document.where( filter = nil, **conditions )
|
370
|
+
Mongous::Filter#where( filter = nil, **conditions )
|
309
371
|
----
|
310
372
|
|
311
373
|
* Result:
|
312
|
-
** Filter instance.
|
374
|
+
** Mongous::Filter instance.
|
313
375
|
|
314
376
|
* Parameter:
|
315
377
|
** filter: Filter name symbol, or filter instance.
|
@@ -319,11 +381,12 @@ Collection operate class #where( filter = nil, **conditions )
|
|
319
381
|
|
320
382
|
[source,ruby]
|
321
383
|
----
|
322
|
-
|
384
|
+
Mongous::Document.not( filter = nil, **conditions )
|
385
|
+
Mongous::Filter#not( filter = nil, **conditions )
|
323
386
|
----
|
324
387
|
|
325
388
|
* Result:
|
326
|
-
** Filter instance.
|
389
|
+
** Mongous::Filter instance.
|
327
390
|
|
328
391
|
* Parameter:
|
329
392
|
** filter: Filter name symbol, or filter instance.
|
@@ -333,11 +396,12 @@ Collection operate class #not( filter = nil, **conditions )
|
|
333
396
|
|
334
397
|
[source,ruby]
|
335
398
|
----
|
336
|
-
|
399
|
+
Mongous::Document.and( *filters )
|
400
|
+
Mongous::Filter#and( *filters )
|
337
401
|
----
|
338
402
|
|
339
403
|
* Result:
|
340
|
-
** Filter instance.
|
404
|
+
** Mongous::Filter instance.
|
341
405
|
|
342
406
|
* Parameter:
|
343
407
|
** filters: Filter name symbol, or filter instance.
|
@@ -346,20 +410,34 @@ Collection operate class #and( *filters )
|
|
346
410
|
|
347
411
|
[source,ruby]
|
348
412
|
----
|
349
|
-
|
413
|
+
Mongous::Document.or( *filters )
|
414
|
+
Mongous::Filter#or( *filters )
|
350
415
|
----
|
351
416
|
|
352
417
|
* Result:
|
353
|
-
** Filter instance.
|
418
|
+
** Mongous::Filter instance.
|
354
419
|
|
355
420
|
* Parameter:
|
356
421
|
** filters: Field name symbol, or filter instance.
|
357
422
|
|
423
|
+
=== Create document.
|
424
|
+
|
425
|
+
[source,ruby]
|
426
|
+
----
|
427
|
+
Mongous::Document.create( **doc )
|
428
|
+
----
|
429
|
+
|
430
|
+
* Result:
|
431
|
+
** nil.
|
432
|
+
|
433
|
+
* Parameter:
|
434
|
+
** doc: Keyword arguments.
|
435
|
+
|
358
436
|
=== Save document.
|
359
437
|
|
360
438
|
[source,ruby]
|
361
439
|
----
|
362
|
-
Document
|
440
|
+
Mongous::Document#save
|
363
441
|
----
|
364
442
|
|
365
443
|
* Result:
|
@@ -369,7 +447,7 @@ Document operate object #save
|
|
369
447
|
|
370
448
|
[source,ruby]
|
371
449
|
----
|
372
|
-
Document
|
450
|
+
Mongous::Document#to_hash
|
373
451
|
----
|
374
452
|
|
375
453
|
* Result:
|
@@ -379,7 +457,7 @@ Document operate object #to_hash
|
|
379
457
|
|
380
458
|
[source,ruby]
|
381
459
|
----
|
382
|
-
Document
|
460
|
+
Mongous::Document#to_json
|
383
461
|
----
|
384
462
|
|
385
463
|
* Result:
|
@@ -389,8 +467,8 @@ Document operate object #to_hash
|
|
389
467
|
|
390
468
|
[source,ruby]
|
391
469
|
----
|
392
|
-
Document
|
393
|
-
Document
|
470
|
+
Mongous::Document#[]( field_name )
|
471
|
+
Mongous::Document#field_name
|
394
472
|
----
|
395
473
|
|
396
474
|
* Result:
|
@@ -403,8 +481,8 @@ Document operate object #field_name
|
|
403
481
|
|
404
482
|
[source,ruby]
|
405
483
|
----
|
406
|
-
Document
|
407
|
-
Document
|
484
|
+
Mongous::Document#[]=( field_name, field_value )
|
485
|
+
Mongous::Document#field_name = field_value
|
408
486
|
----
|
409
487
|
|
410
488
|
* Result:
|
data/README.ja.adoc
CHANGED
@@ -38,7 +38,6 @@ gem 'mongous'
|
|
38
38
|
----
|
39
39
|
require "mongous"
|
40
40
|
|
41
|
-
Mongous.connect!
|
42
41
|
Mongous.attach! :Book
|
43
42
|
----
|
44
43
|
|
@@ -137,7 +136,15 @@ Book.find( { title: /title/ }, { projection: {_id: 0} } ).each do |book|
|
|
137
136
|
p book
|
138
137
|
end
|
139
138
|
|
140
|
-
|
139
|
+
Book.where( title: /title/ ).select( _id: 0 ).each do |book|
|
140
|
+
p book
|
141
|
+
end
|
142
|
+
|
143
|
+
Book.select( _id: 0 )[0, 5].each do |book|
|
144
|
+
p book
|
145
|
+
end
|
146
|
+
|
147
|
+
pp Book.select( :title, :price, :size )[5, 5].all
|
141
148
|
----
|
142
149
|
|
143
150
|
=== ドキュメント更新
|
@@ -220,6 +227,19 @@ self.client=( client )
|
|
220
227
|
* Parameter:
|
221
228
|
** client: Mongo::Client インスタンス.
|
222
229
|
|
230
|
+
=== Get binded database.
|
231
|
+
|
232
|
+
[source,ruby]
|
233
|
+
----
|
234
|
+
self.client
|
235
|
+
----
|
236
|
+
|
237
|
+
* Result:
|
238
|
+
** Mongo::Client インスタンス.
|
239
|
+
|
240
|
+
* Parameter:
|
241
|
+
** None.
|
242
|
+
|
223
243
|
=== 別のコレクションを割り当てる.
|
224
244
|
|
225
245
|
[source,ruby]
|
@@ -233,11 +253,37 @@ self.collection_name=( collection_name )
|
|
233
253
|
* Parameter:
|
234
254
|
** collection_name: コレクション名.
|
235
255
|
|
256
|
+
=== Get binded collection name.
|
257
|
+
|
258
|
+
[source,ruby]
|
259
|
+
----
|
260
|
+
self.collection_name
|
261
|
+
----
|
262
|
+
|
263
|
+
* Result:
|
264
|
+
** Collection name 文字列.
|
265
|
+
|
266
|
+
* Parameter:
|
267
|
+
** None.
|
268
|
+
|
269
|
+
=== Get collection.
|
270
|
+
|
271
|
+
[source,ruby]
|
272
|
+
----
|
273
|
+
self.collection( collection_name = nil )
|
274
|
+
----
|
275
|
+
|
276
|
+
* Result:
|
277
|
+
** Mongo::Collection インスタンス.
|
278
|
+
|
279
|
+
* Parameter:
|
280
|
+
** collection_name: 一時指定するコレクション名.
|
281
|
+
|
236
282
|
=== ドキュメントの要素を定義する.
|
237
283
|
|
238
284
|
[source,ruby]
|
239
285
|
----
|
240
|
-
field( symbol, *attrs, **items )
|
286
|
+
self.field( symbol, *attrs, **items )
|
241
287
|
----
|
242
288
|
|
243
289
|
* Parameter:
|
@@ -258,7 +304,7 @@ field( symbol, *attrs, **items )
|
|
258
304
|
|
259
305
|
[source,ruby]
|
260
306
|
----
|
261
|
-
verify( *directives, &block )
|
307
|
+
self.verify( *directives, &block )
|
262
308
|
----
|
263
309
|
|
264
310
|
* Parameter:
|
@@ -270,7 +316,7 @@ verify( *directives, &block )
|
|
270
316
|
|
271
317
|
[source,ruby]
|
272
318
|
----
|
273
|
-
index( *symbols, **options )
|
319
|
+
self.index( *symbols, **options )
|
274
320
|
----
|
275
321
|
|
276
322
|
* Parameter:
|
@@ -281,7 +327,7 @@ index( *symbols, **options )
|
|
281
327
|
|
282
328
|
[source,ruby]
|
283
329
|
----
|
284
|
-
having?( label )
|
330
|
+
self.having?( label )
|
285
331
|
----
|
286
332
|
|
287
333
|
* Result:
|
@@ -294,22 +340,38 @@ having?( label )
|
|
294
340
|
|
295
341
|
[source,ruby]
|
296
342
|
----
|
297
|
-
filter( symbol, filter_or_cond )
|
343
|
+
self.filter( symbol, filter_or_cond )
|
298
344
|
----
|
299
345
|
|
300
346
|
* Parameter:
|
301
347
|
** symbol: 項目名
|
302
348
|
** filter_or_cond: フィルタまたは検索条件
|
303
349
|
|
350
|
+
=== 出力項目を選択する.
|
351
|
+
|
352
|
+
[source,ruby]
|
353
|
+
----
|
354
|
+
Mongous::Document.select( *keys, **kwargs )
|
355
|
+
Mongous::Filter#select( *keys, **kwargs )
|
356
|
+
----
|
357
|
+
|
358
|
+
* Result:
|
359
|
+
** Mongous::Filter instance.
|
360
|
+
|
361
|
+
* Parameter:
|
362
|
+
** keys: 項目名
|
363
|
+
** kwargs: 項目名と項目値.
|
364
|
+
|
304
365
|
=== 検索条件.
|
305
366
|
|
306
367
|
[source,ruby]
|
307
368
|
----
|
308
|
-
|
369
|
+
Mongous::Document.where( filter = nil, **conditions )
|
370
|
+
Mongous::Filter#where( filter = nil, **conditions )
|
309
371
|
----
|
310
372
|
|
311
373
|
* Result:
|
312
|
-
** Filter instance.
|
374
|
+
** Mongous::Filter instance.
|
313
375
|
|
314
376
|
* Parameter:
|
315
377
|
** filter: 項目名またはフィルタインスタンス
|
@@ -319,11 +381,12 @@ filter( symbol, filter_or_cond )
|
|
319
381
|
|
320
382
|
[source,ruby]
|
321
383
|
----
|
322
|
-
|
384
|
+
Mongous::Document.not( filter = nil, **conditions )
|
385
|
+
Mongous::Filter#not( filter = nil, **conditions )
|
323
386
|
----
|
324
387
|
|
325
388
|
* Result:
|
326
|
-
** Filter instance.
|
389
|
+
** Mongous::Filter instance.
|
327
390
|
|
328
391
|
* Parameter:
|
329
392
|
** filter: 項目名またはフィルタインスタンス
|
@@ -333,11 +396,12 @@ filter( symbol, filter_or_cond )
|
|
333
396
|
|
334
397
|
[source,ruby]
|
335
398
|
----
|
336
|
-
|
399
|
+
Mongous::Document.and( *filters )
|
400
|
+
Mongous::Filter#and( *filters )
|
337
401
|
----
|
338
402
|
|
339
403
|
* Result:
|
340
|
-
** Filter instance.
|
404
|
+
** Mongous::Filter instance.
|
341
405
|
|
342
406
|
* Parameter:
|
343
407
|
** filters: 項目名またはフィルタインスタンス
|
@@ -346,20 +410,34 @@ filter( symbol, filter_or_cond )
|
|
346
410
|
|
347
411
|
[source,ruby]
|
348
412
|
----
|
349
|
-
|
413
|
+
Mongous::Document.or( *filters )
|
414
|
+
Mongous::Filter#or( *filters )
|
350
415
|
----
|
351
416
|
|
352
417
|
* Result:
|
353
|
-
** Filter instance.
|
418
|
+
** Mongous::Filter instance.
|
354
419
|
|
355
420
|
* Parameter:
|
356
421
|
** filters: 項目名またはフィルタインスタンス
|
357
422
|
|
423
|
+
=== ドキュメントを作成.
|
424
|
+
|
425
|
+
[source,ruby]
|
426
|
+
----
|
427
|
+
Mongous::Document.create( **doc )
|
428
|
+
----
|
429
|
+
|
430
|
+
* Result:
|
431
|
+
** nil.
|
432
|
+
|
433
|
+
* Parameter:
|
434
|
+
** doc: キーワード引数.
|
435
|
+
|
358
436
|
=== ドキュメントを保存.
|
359
437
|
|
360
438
|
[source,ruby]
|
361
439
|
----
|
362
|
-
|
440
|
+
Mongous::Document#save
|
363
441
|
----
|
364
442
|
|
365
443
|
* Result:
|
@@ -369,7 +447,7 @@ filter( symbol, filter_or_cond )
|
|
369
447
|
|
370
448
|
[source,ruby]
|
371
449
|
----
|
372
|
-
|
450
|
+
Mongous::Document#to_hash
|
373
451
|
----
|
374
452
|
|
375
453
|
* Result:
|
@@ -379,7 +457,7 @@ filter( symbol, filter_or_cond )
|
|
379
457
|
|
380
458
|
[source,ruby]
|
381
459
|
----
|
382
|
-
|
460
|
+
Mongous::Document#to_json
|
383
461
|
----
|
384
462
|
|
385
463
|
* Result:
|
@@ -389,8 +467,8 @@ filter( symbol, filter_or_cond )
|
|
389
467
|
|
390
468
|
[source,ruby]
|
391
469
|
----
|
392
|
-
|
393
|
-
|
470
|
+
Mongous::Document#[]( field_name )
|
471
|
+
Mongous::Document#field_name
|
394
472
|
----
|
395
473
|
|
396
474
|
* Result:
|
@@ -403,8 +481,8 @@ filter( symbol, filter_or_cond )
|
|
403
481
|
|
404
482
|
[source,ruby]
|
405
483
|
----
|
406
|
-
|
407
|
-
|
484
|
+
Mongous::Document#[]=( field_name, field_value )
|
485
|
+
Mongous::Document#field_name = field_value
|
408
486
|
----
|
409
487
|
|
410
488
|
* Result:
|