mongous 0.1.2 → 0.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.adoc +36 -6
- data/README.ja.adoc +35 -5
- data/lib/mongous/document.rb +2 -2
- data/lib/mongous/extention.rb +6 -22
- data/lib/mongous/filter.rb +152 -43
- data/lib/mongous/version.rb +1 -1
- data/mongous.gemspec +3 -2
- data/sample/connect_auto_2.rb +2 -1
- data/sample/connect_default_2.rb +2 -1
- data/sample/connect_environ_2.rb +2 -1
- data/sample/connect_loadfile_2.rb +2 -1
- data/sample/query_basic_1.rb +8 -2
- data/sample/query_basic_2.rb +8 -2
- data/sample/query_basic_5.rb +0 -19
- data/sample/query_basic_6.rb +43 -0
- data/sample/query_basic_7.rb +38 -0
- data/sample/query_super_1.rb +32 -0
- data/sample/save_basic_1.rb +5 -5
- data/sample/save_basic_2.rb +1 -1
- data/sample/save_basic_3.rb +1 -1
- metadata +10 -7
- data/sample/query_raw_1.rb +0 -33
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3ac08d4dc3cd1b50de8ae75c4db5f63b9604abefa5890f046564d44619d75cf4
|
4
|
+
data.tar.gz: 446aae2fcd699ad4a27cc5f15790a00d84eaceff3e38ef4ded3b5aec425dcba4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ce0e4ff3b90f13ac1bdb328ecac4c8986120e780575dbb97a242638d2cfd2c11581963cc2141c2f09f3a184cdcef85420354f4a12d02eca890c66b1458c9ea8e
|
7
|
+
data.tar.gz: 6e78c1a620e8cdc974e9e60bca01f54b0127b225a7e1e0f567c7354ec7d43adf1cd2e3ffa72859f6805ffcacd8b3a198258763a4f14ab0f216b6f4d585d56e0d
|
data/README.adoc
CHANGED
@@ -30,7 +30,7 @@ Or install it yourself as:
|
|
30
30
|
|
31
31
|
== Usage
|
32
32
|
|
33
|
-
=== Simple
|
33
|
+
=== Simple declaration
|
34
34
|
|
35
35
|
[source,ruby]
|
36
36
|
----
|
@@ -91,18 +91,16 @@ book = Book.new( title: "title 2", price: 2000, style: "A5" )
|
|
91
91
|
book.save
|
92
92
|
|
93
93
|
doc = { title: "title 3", price: 3000, style: "A6" }
|
94
|
-
Book.create( doc )
|
94
|
+
Book.create( **doc )
|
95
95
|
----
|
96
96
|
|
97
97
|
=== Search document
|
98
98
|
|
99
99
|
[source,ruby]
|
100
100
|
----
|
101
|
-
books = Book.all
|
102
|
-
pp books
|
101
|
+
pp books = Book.all
|
103
102
|
|
104
|
-
book = Book.filter( title: "title 1" ).first
|
105
|
-
p book
|
103
|
+
p book = Book.filter( title: "title 1" ).first
|
106
104
|
|
107
105
|
books = Book.filter( title: /title/ ).all
|
108
106
|
books.each do |book|
|
@@ -116,6 +114,25 @@ end
|
|
116
114
|
Book.filter( price: (1..2000), style: ["A4","A5"] ).each do |book|
|
117
115
|
p book
|
118
116
|
end
|
117
|
+
|
118
|
+
filter1 = Book.filter( title: /title/ )
|
119
|
+
filter2 = Book.filter( price: (1..2000) )
|
120
|
+
filter3 = Book.filter( style: ["A4","A5"] )
|
121
|
+
Book.not( filter1 ).each do |book|
|
122
|
+
p book
|
123
|
+
end
|
124
|
+
Book.and( filter1, filter2 ).each do |book|
|
125
|
+
p book
|
126
|
+
end
|
127
|
+
Book.or( filter1, filter3 ).each do |book|
|
128
|
+
p book
|
129
|
+
end
|
130
|
+
|
131
|
+
Book.find( { title: /title/ }, { projection: {_id: 0} } ).each do |book|
|
132
|
+
p book
|
133
|
+
end
|
134
|
+
|
135
|
+
pp Book.filter( title: /title/ )[0, 5].all
|
119
136
|
----
|
120
137
|
|
121
138
|
=== Update document
|
@@ -172,6 +189,19 @@ Mongous.connect( hosts_or_uri = nil, **opts )
|
|
172
189
|
include Mongous::Document
|
173
190
|
----
|
174
191
|
|
192
|
+
=== Bind another database.
|
193
|
+
|
194
|
+
[source,ruby]
|
195
|
+
----
|
196
|
+
set_client( client )
|
197
|
+
----
|
198
|
+
|
199
|
+
* Result:
|
200
|
+
** nil.
|
201
|
+
|
202
|
+
* Parameter:
|
203
|
+
** client: Mongo::Client instance.
|
204
|
+
|
175
205
|
=== Declare document structure.
|
176
206
|
|
177
207
|
[source,ruby]
|
data/README.ja.adoc
CHANGED
@@ -91,18 +91,16 @@ book = Book.new( title: "title 2", price: 2000, style: "A5" )
|
|
91
91
|
book.save
|
92
92
|
|
93
93
|
doc = { title: "title 3", price: 3000, style: "A6" }
|
94
|
-
Book.create( doc )
|
94
|
+
Book.create( **doc )
|
95
95
|
----
|
96
96
|
|
97
97
|
=== ドキュメント検索
|
98
98
|
|
99
99
|
[source,ruby]
|
100
100
|
----
|
101
|
-
books = Book.all
|
102
|
-
pp books
|
101
|
+
pp books = Book.all
|
103
102
|
|
104
|
-
book = Book.filter( title: "title 1" ).first
|
105
|
-
p book
|
103
|
+
p book = Book.filter( title: "title 1" ).first
|
106
104
|
|
107
105
|
books = Book.filter( title: /title/ ).all
|
108
106
|
books.each do |book|
|
@@ -116,6 +114,25 @@ end
|
|
116
114
|
Book.filter( price: (1..2000), style: ["A4","A5"] ).each do |book|
|
117
115
|
p book
|
118
116
|
end
|
117
|
+
|
118
|
+
filter1 = Book.filter( title: /title/ )
|
119
|
+
filter2 = Book.filter( price: (1..2000) )
|
120
|
+
filter3 = Book.filter( style: ["A4","A5"] )
|
121
|
+
Book.not( filter1 ).each do |book|
|
122
|
+
p book
|
123
|
+
end
|
124
|
+
Book.and( filter1, filter2 ).each do |book|
|
125
|
+
p book
|
126
|
+
end
|
127
|
+
Book.or( filter1, filter3 ).each do |book|
|
128
|
+
p book
|
129
|
+
end
|
130
|
+
|
131
|
+
Book.find( { title: /title/ }, { projection: {_id: 0} } ).each do |book|
|
132
|
+
p book
|
133
|
+
end
|
134
|
+
|
135
|
+
pp Book.filter( title: /title/ )[0, 5].all
|
119
136
|
----
|
120
137
|
|
121
138
|
=== ドキュメント更新
|
@@ -172,6 +189,19 @@ Mongous.connect( hosts_or_uri = nil, **opts )
|
|
172
189
|
include Mongous::Document
|
173
190
|
----
|
174
191
|
|
192
|
+
=== 別のデータベースを割り当てる.
|
193
|
+
|
194
|
+
[source,ruby]
|
195
|
+
----
|
196
|
+
set_client( client )
|
197
|
+
----
|
198
|
+
|
199
|
+
* Result:
|
200
|
+
** nil.
|
201
|
+
|
202
|
+
* Parameter:
|
203
|
+
** client: Mongo::Client instance.
|
204
|
+
|
175
205
|
=== ドキュメントの要素を定義する.
|
176
206
|
|
177
207
|
[source,ruby]
|
data/lib/mongous/document.rb
CHANGED
data/lib/mongous/extention.rb
CHANGED
@@ -10,7 +10,7 @@ module Mongous
|
|
10
10
|
end
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
13
|
+
def client=( _client )
|
14
14
|
m = /(.*?):(\d+)/.match( caller()[0] )
|
15
15
|
call_from = [ m[1], m[2] ].join(":")
|
16
16
|
if !_client.is_a?( Mongo::Client )
|
@@ -28,7 +28,7 @@ module Mongous
|
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
31
|
-
def
|
31
|
+
def collection_name=( _collection_name )
|
32
32
|
self.class_variable_set( :@@collection_name, _collection_name )
|
33
33
|
if self.class_variable_defined?( :@@collection )
|
34
34
|
self.remove_class_variable( :@@collection )
|
@@ -91,28 +91,12 @@ module Mongous
|
|
91
91
|
end
|
92
92
|
end
|
93
93
|
|
94
|
-
def create( doc
|
95
|
-
self.new( doc
|
94
|
+
def create( **doc )
|
95
|
+
self.new( **doc ).save
|
96
96
|
end
|
97
97
|
|
98
|
-
def
|
99
|
-
|
100
|
-
end
|
101
|
-
|
102
|
-
def first
|
103
|
-
Filter.new( self ).first
|
104
|
-
end
|
105
|
-
|
106
|
-
def all
|
107
|
-
Filter.new( self ).all
|
108
|
-
end
|
109
|
-
|
110
|
-
def each( &block )
|
111
|
-
Filter.new( self ).each( &block )
|
112
|
-
end
|
113
|
-
|
114
|
-
def delete
|
115
|
-
Filter.new( self ).delete
|
98
|
+
def find( conditios = {}, options = {} )
|
99
|
+
self.collection.find( conditios, options )
|
116
100
|
end
|
117
101
|
|
118
102
|
def field( label, *args, **opts, &block )
|
data/lib/mongous/filter.rb
CHANGED
@@ -1,4 +1,82 @@
|
|
1
1
|
|
2
|
+
module Mongous
|
3
|
+
module Extention
|
4
|
+
def count
|
5
|
+
self.collection.find.count
|
6
|
+
end
|
7
|
+
|
8
|
+
def first
|
9
|
+
doc = self.collection.find.first
|
10
|
+
self.new( **doc ) if doc
|
11
|
+
end
|
12
|
+
|
13
|
+
def all
|
14
|
+
self.collection.find.map do |doc|
|
15
|
+
self.new( **doc )
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def each( &block )
|
20
|
+
all.each( &block )
|
21
|
+
end
|
22
|
+
|
23
|
+
def delete
|
24
|
+
self.collection.delete_many({})
|
25
|
+
end
|
26
|
+
|
27
|
+
def filter( **conditions )
|
28
|
+
Filter.new( self ).filter( conditions )
|
29
|
+
end
|
30
|
+
|
31
|
+
def not( filter = nil, **conditions )
|
32
|
+
raise Mongous::Error, "Unset args for #{self}.not." if filter.nil? && conditions.empty?
|
33
|
+
|
34
|
+
filter ||= conditions
|
35
|
+
condition = case filter
|
36
|
+
when Hash
|
37
|
+
Filter.new( self ).filter( filter ).to_condition
|
38
|
+
when Filter
|
39
|
+
filter.to_condition
|
40
|
+
else
|
41
|
+
raise Mongous::Error, "Invalid args for #{self}.not. : #{filter}"
|
42
|
+
end
|
43
|
+
Filter.new( self ).filter({"$nor" => [condition]})
|
44
|
+
end
|
45
|
+
|
46
|
+
def and( *filters )
|
47
|
+
raise Mongous::Error, "Unset args for #{self}.and." if filters.empty?
|
48
|
+
|
49
|
+
conditions = filters.map do |filter|
|
50
|
+
case filter
|
51
|
+
when Hash
|
52
|
+
filter
|
53
|
+
when Filter
|
54
|
+
filter.to_condition
|
55
|
+
else
|
56
|
+
raise Mongous::Error, "Invalid args for #{self}.and. : #{filter}"
|
57
|
+
end
|
58
|
+
end
|
59
|
+
Filter.new( self ).filter({"$and" => conditions})
|
60
|
+
end
|
61
|
+
|
62
|
+
def or( *filters )
|
63
|
+
raise Mongous::Error, "Unset args for #{self}.or." if filters.empty?
|
64
|
+
|
65
|
+
conditions = filters.map do |filter|
|
66
|
+
case filter
|
67
|
+
when Hash
|
68
|
+
filter
|
69
|
+
when Filter
|
70
|
+
filter.to_condition
|
71
|
+
else
|
72
|
+
raise Mongous::Error, "Invalid args for #{self}.or. : #{filter}"
|
73
|
+
end
|
74
|
+
end
|
75
|
+
Filter.new( self ).filter({"$or" => conditions})
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
|
2
80
|
module Mongous
|
3
81
|
class Filter
|
4
82
|
def initialize( klass )
|
@@ -7,86 +85,104 @@ module Mongous
|
|
7
85
|
@option = {}
|
8
86
|
end
|
9
87
|
|
10
|
-
def filter(
|
88
|
+
def filter( conditions )
|
11
89
|
hash = {}
|
12
|
-
|
13
|
-
case
|
14
|
-
when
|
15
|
-
hash[key] =
|
90
|
+
conditions.each do |key, item|
|
91
|
+
case key
|
92
|
+
when /\$(and|or|nor)/
|
93
|
+
hash[key] = item
|
16
94
|
|
17
|
-
|
18
|
-
|
19
|
-
|
95
|
+
else
|
96
|
+
case item
|
97
|
+
when Array
|
98
|
+
hash[key] = {"$in"=>item}
|
20
99
|
|
21
|
-
|
22
|
-
|
100
|
+
when Range
|
101
|
+
_begin_oper = "$gte"
|
102
|
+
_end_oper = item.exclude_end? ? "$lt" : "$lte"
|
23
103
|
|
24
|
-
|
25
|
-
|
104
|
+
if item.begin && item.end
|
105
|
+
hash[key] = { _begin_oper => item.begin, _end_oper => item.end }
|
26
106
|
|
27
|
-
|
28
|
-
|
107
|
+
elsif !item.begin && item.end
|
108
|
+
hash[key] = { _end_oper => item.end }
|
29
109
|
|
30
|
-
|
31
|
-
|
110
|
+
elsif item.begin && !item.end
|
111
|
+
hash[key] = { _begin_oper => item.begin }
|
32
112
|
|
33
|
-
|
113
|
+
else
|
114
|
+
raise Mongous::Error, "invalid range. : #{ item }"
|
34
115
|
|
35
|
-
|
36
|
-
hash[key] = item
|
116
|
+
end
|
37
117
|
|
118
|
+
else
|
119
|
+
hash[key] = item
|
120
|
+
|
121
|
+
end
|
38
122
|
end
|
39
123
|
end
|
40
124
|
@filter.merge!( hash )
|
41
125
|
self.dup
|
42
126
|
end
|
43
127
|
|
44
|
-
def
|
45
|
-
|
46
|
-
self.dup
|
128
|
+
def to_condition
|
129
|
+
@filter.dup
|
47
130
|
end
|
48
131
|
|
49
|
-
def option
|
132
|
+
def option( _option )
|
50
133
|
@option.merge!( _option )
|
134
|
+
self.dup
|
51
135
|
end
|
52
136
|
|
53
137
|
def projection( _projection )
|
54
|
-
|
138
|
+
@projection = _projection
|
55
139
|
self.dup
|
56
140
|
end
|
57
141
|
alias :select :projection
|
58
142
|
|
59
|
-
def projection!( _projection )
|
60
|
-
@projection = _projection
|
61
|
-
end
|
62
|
-
|
63
143
|
def sort( _sort )
|
64
|
-
|
144
|
+
@sort = _sort
|
65
145
|
self.dup
|
66
146
|
end
|
67
147
|
alias :order :sort
|
68
148
|
|
69
|
-
def sort!( _sort )
|
70
|
-
@sort = _sort
|
71
|
-
end
|
72
|
-
|
73
149
|
def skip( _skip )
|
74
|
-
|
150
|
+
@skip = _skip
|
75
151
|
self.dup
|
76
152
|
end
|
77
153
|
alias :offset :skip
|
78
154
|
|
79
|
-
def skip!( _skip )
|
80
|
-
@skip = _skip
|
81
|
-
end
|
82
|
-
|
83
155
|
def limit( _limit )
|
84
|
-
|
156
|
+
@limit = _limit
|
85
157
|
self.dup
|
86
158
|
end
|
87
159
|
|
88
|
-
def
|
89
|
-
|
160
|
+
def []( nth_or_range, len = 1 )
|
161
|
+
case nth_or_range
|
162
|
+
when Integer
|
163
|
+
raise Mongous::Error, "invalid nth. : #{ nth_or_range }" if len < 0
|
164
|
+
@skip = nth_or_range
|
165
|
+
|
166
|
+
raise Mongous::Error, "invalid len. : #{ len }" if !len.is_a? Integer || len <= 0
|
167
|
+
@limit = len
|
168
|
+
|
169
|
+
when Range
|
170
|
+
from = nth_or_range.begin
|
171
|
+
raise Mongous::Error, "invalid range. : #{ nth_or_range }" unless from.is_a? Integer
|
172
|
+
|
173
|
+
to = nth_or_range.end
|
174
|
+
raise Mongous::Error, "invalid range. : #{ nth_or_range }" unless to.is_a? Integer
|
175
|
+
|
176
|
+
to -= 1 if nth_or_range.exclude_end?
|
177
|
+
@skip = from
|
178
|
+
@limit = to - from + 1
|
179
|
+
|
180
|
+
else
|
181
|
+
raise Mongous::Error, "invalid class. : #{ nth_or_range }"
|
182
|
+
|
183
|
+
end
|
184
|
+
|
185
|
+
self.dup
|
90
186
|
end
|
91
187
|
|
92
188
|
def do_find
|
@@ -100,14 +196,27 @@ module Mongous
|
|
100
196
|
found
|
101
197
|
end
|
102
198
|
|
199
|
+
def count
|
200
|
+
_count = do_find.count
|
201
|
+
if @skip && @limit
|
202
|
+
[_count - @skip, @limit].min
|
203
|
+
elsif @skip.nil? && @limit
|
204
|
+
[_count, @limit].min
|
205
|
+
elsif @skip && @limit.nil?
|
206
|
+
[_count - @skip, 0].max
|
207
|
+
else
|
208
|
+
_count
|
209
|
+
end
|
210
|
+
end
|
211
|
+
|
103
212
|
def first
|
104
213
|
doc = do_find.first
|
105
|
-
@klass.new( doc ) if doc
|
214
|
+
@klass.new( **doc ) if doc
|
106
215
|
end
|
107
216
|
|
108
217
|
def all
|
109
218
|
do_find.map do |doc|
|
110
|
-
@klass.new( doc )
|
219
|
+
@klass.new( **doc )
|
111
220
|
end
|
112
221
|
end
|
113
222
|
|
data/lib/mongous/version.rb
CHANGED
data/mongous.gemspec
CHANGED
@@ -3,12 +3,13 @@ require_relative 'lib/mongous/version'
|
|
3
3
|
Gem::Specification.new do |spec|
|
4
4
|
spec.name = "mongous"
|
5
5
|
spec.version = Mongous::VERSION
|
6
|
-
spec.authors = ["
|
6
|
+
spec.authors = ["arimay"]
|
7
7
|
spec.email = ["arima.yasuhiro@gmail.com"]
|
8
8
|
|
9
9
|
spec.summary = %q{ Mongo wrapper library. }
|
10
10
|
spec.description = %q{ Yet another lightweight mongo wrapper library. }
|
11
|
-
spec.
|
11
|
+
spec.homepage = "https://github.com/arimay/mongous"
|
12
|
+
spec.license = "MIT"
|
12
13
|
|
13
14
|
# Specify which files should be added to the gem when it is released.
|
14
15
|
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
data/sample/connect_auto_2.rb
CHANGED
data/sample/connect_default_2.rb
CHANGED
data/sample/connect_environ_2.rb
CHANGED
data/sample/query_basic_1.rb
CHANGED
data/sample/query_basic_2.rb
CHANGED
@@ -8,11 +8,17 @@ class Book
|
|
8
8
|
end
|
9
9
|
|
10
10
|
|
11
|
-
book = Book.filter( title:
|
12
|
-
|
11
|
+
p book = Book.filter( title: /title/ ).first
|
12
|
+
puts
|
13
|
+
|
14
|
+
p count = Book.filter( title: /title/ ).count
|
15
|
+
puts
|
16
|
+
|
17
|
+
pp books = Book.filter( title: /title/ ).all
|
13
18
|
puts
|
14
19
|
|
15
20
|
Book.filter( title: /title/ ).each do |book|
|
16
21
|
p book
|
17
22
|
end
|
23
|
+
puts
|
18
24
|
|
data/sample/query_basic_5.rb
CHANGED
@@ -18,22 +18,3 @@ Book.filter( page: (100...300) ).each do |book|
|
|
18
18
|
end
|
19
19
|
puts
|
20
20
|
|
21
|
-
exit if RUBY_VERSION < "2.6"
|
22
|
-
|
23
|
-
Book.filter( page: (200..) ).each do |book|
|
24
|
-
p book
|
25
|
-
end
|
26
|
-
puts
|
27
|
-
|
28
|
-
exit if RUBY_VERSION < "2.7"
|
29
|
-
|
30
|
-
Book.filter( page: (..200) ).each do |book|
|
31
|
-
p book
|
32
|
-
end
|
33
|
-
puts
|
34
|
-
|
35
|
-
Book.filter( page: (...300) ).each do |book|
|
36
|
-
p book
|
37
|
-
end
|
38
|
-
puts
|
39
|
-
|
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
require "mongous"
|
3
|
+
|
4
|
+
Mongous.connect!
|
5
|
+
|
6
|
+
class Book
|
7
|
+
include Mongous::Document
|
8
|
+
end
|
9
|
+
|
10
|
+
Book.new( title: "complex 1", author: "Alice", style: "A4", price: 1000, page: 100 ).save
|
11
|
+
Book.new( title: "complex 2", author: "Bob", style: "A5", price: 2000, page: 200 ).save
|
12
|
+
Book.new( title: "complex 3", author: "Candy", style: "A6", price: 3000, page: 300 ).save
|
13
|
+
|
14
|
+
filter1 = Book.filter( title: /comp/ )
|
15
|
+
filter2 = Book.not( price: (2000...3000) )
|
16
|
+
filter3 = Book.and( filter1, filter2 ).select( _id: 0 )
|
17
|
+
filter4 = Book.or( filter1, filter2 ).select( _id: 0 )
|
18
|
+
p filter1.to_condition
|
19
|
+
p filter2.to_condition
|
20
|
+
p filter3.to_condition
|
21
|
+
p filter4.to_condition
|
22
|
+
puts
|
23
|
+
|
24
|
+
filter1.each do |book|
|
25
|
+
p book
|
26
|
+
end
|
27
|
+
puts
|
28
|
+
|
29
|
+
filter2.each do |book|
|
30
|
+
p book
|
31
|
+
end
|
32
|
+
puts
|
33
|
+
|
34
|
+
filter3.each do |book|
|
35
|
+
p book
|
36
|
+
end
|
37
|
+
puts
|
38
|
+
|
39
|
+
filter4.each do |book|
|
40
|
+
p book
|
41
|
+
end
|
42
|
+
puts
|
43
|
+
|
@@ -0,0 +1,38 @@
|
|
1
|
+
|
2
|
+
require "mongous"
|
3
|
+
|
4
|
+
Mongous.connect!
|
5
|
+
|
6
|
+
class Book
|
7
|
+
include Mongous::Document
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
p count = Book.filter.count
|
12
|
+
puts
|
13
|
+
|
14
|
+
p count = Book.filter[0..4].count
|
15
|
+
puts
|
16
|
+
|
17
|
+
p count = Book.filter[0...4].count
|
18
|
+
puts
|
19
|
+
|
20
|
+
p count = Book.filter[0, 4].count
|
21
|
+
puts
|
22
|
+
|
23
|
+
p count = Book.filter[20,10].count
|
24
|
+
puts
|
25
|
+
|
26
|
+
pp books = Book.filter[0, 2].all
|
27
|
+
puts
|
28
|
+
|
29
|
+
filter = Book.filter( title: /title/ )
|
30
|
+
filter[0, 4].each do |book|
|
31
|
+
p book
|
32
|
+
end
|
33
|
+
puts
|
34
|
+
filter[4, 4].each do |book|
|
35
|
+
p book
|
36
|
+
end
|
37
|
+
puts
|
38
|
+
|
@@ -0,0 +1,32 @@
|
|
1
|
+
|
2
|
+
require "mongous"
|
3
|
+
|
4
|
+
Mongous.connect!
|
5
|
+
|
6
|
+
class Book
|
7
|
+
include Mongous::Document
|
8
|
+
end
|
9
|
+
|
10
|
+
|
11
|
+
p book = Book.find.first
|
12
|
+
puts
|
13
|
+
|
14
|
+
Book.find.each do |book|
|
15
|
+
p book
|
16
|
+
end
|
17
|
+
puts
|
18
|
+
|
19
|
+
Book.find( title: /title/ ).each do |book|
|
20
|
+
p book
|
21
|
+
end
|
22
|
+
puts
|
23
|
+
|
24
|
+
Book.find( {}, { projection: {_id: 0} } ).each do |book|
|
25
|
+
p book
|
26
|
+
end
|
27
|
+
puts
|
28
|
+
|
29
|
+
Book.find( {title: /title/}, { projection: {_id: 0} } ).each do |book|
|
30
|
+
p book
|
31
|
+
end
|
32
|
+
|
data/sample/save_basic_1.rb
CHANGED
@@ -9,10 +9,10 @@ end
|
|
9
9
|
|
10
10
|
|
11
11
|
book = Book.new
|
12
|
-
book.title = "title basic
|
13
|
-
book.author = "
|
14
|
-
book.style = "
|
15
|
-
book.price =
|
16
|
-
book.page =
|
12
|
+
book.title = "title basic 1"
|
13
|
+
book.author = "Alice"
|
14
|
+
book.style = "A4"
|
15
|
+
book.price = 1000
|
16
|
+
book.page = 100
|
17
17
|
book.save
|
18
18
|
|
data/sample/save_basic_2.rb
CHANGED
data/sample/save_basic_3.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mongous
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- arimay
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-10-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: mongo
|
@@ -97,13 +97,15 @@ files:
|
|
97
97
|
- sample/query_basic_3.rb
|
98
98
|
- sample/query_basic_4.rb
|
99
99
|
- sample/query_basic_5.rb
|
100
|
+
- sample/query_basic_6.rb
|
101
|
+
- sample/query_basic_7.rb
|
100
102
|
- sample/query_detail_1.rb
|
101
103
|
- sample/query_detail_2.rb
|
102
104
|
- sample/query_detail_3.rb
|
103
105
|
- sample/query_limit_1.rb
|
104
106
|
- sample/query_order_1.rb
|
105
107
|
- sample/query_projection_1.rb
|
106
|
-
- sample/
|
108
|
+
- sample/query_super_1.rb
|
107
109
|
- sample/save_basic_1.rb
|
108
110
|
- sample/save_basic_2.rb
|
109
111
|
- sample/save_basic_3.rb
|
@@ -121,8 +123,9 @@ files:
|
|
121
123
|
- sample/zap_basic_1.rb
|
122
124
|
- sample/zap_basic_2.rb
|
123
125
|
- sample/zap_basic_3.rb
|
124
|
-
homepage:
|
125
|
-
licenses:
|
126
|
+
homepage: https://github.com/arimay/mongous
|
127
|
+
licenses:
|
128
|
+
- MIT
|
126
129
|
metadata: {}
|
127
130
|
post_install_message:
|
128
131
|
rdoc_options: []
|
@@ -132,7 +135,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
132
135
|
requirements:
|
133
136
|
- - ">="
|
134
137
|
- !ruby/object:Gem::Version
|
135
|
-
version:
|
138
|
+
version: '0'
|
136
139
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
137
140
|
requirements:
|
138
141
|
- - ">="
|
data/sample/query_raw_1.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
|
2
|
-
require "mongous"
|
3
|
-
|
4
|
-
Mongous.connect!
|
5
|
-
|
6
|
-
class Book
|
7
|
-
include Mongous::Document
|
8
|
-
end
|
9
|
-
|
10
|
-
|
11
|
-
book = Book.collection.find.first
|
12
|
-
p book
|
13
|
-
puts
|
14
|
-
|
15
|
-
Book.collection.find.each do |book|
|
16
|
-
p book
|
17
|
-
end
|
18
|
-
puts
|
19
|
-
|
20
|
-
Book.collection.find( title: /title/ ).each do |book|
|
21
|
-
p book
|
22
|
-
end
|
23
|
-
puts
|
24
|
-
|
25
|
-
Book.collection.find( {}, { projection: {_id: 0, title: 1, author: 1} } ).each do |book|
|
26
|
-
p book
|
27
|
-
end
|
28
|
-
puts
|
29
|
-
|
30
|
-
Book.collection.find( {title: /title/}, { projection: {_id: 0, title: 1, author: 1} } ).each do |book|
|
31
|
-
p book
|
32
|
-
end
|
33
|
-
|