Class: Mongo::Cursor
Constant Summary
JavaImpl::Utils::SortingHash
Instance Attribute Summary collapse
Instance Method Summary
collapse
#from_dbobject, #prep_fields, #prep_sort, #raise_not_implemented, #sort_value, #to_dbobject, #trap_raise
Constructor Details
#initialize(collection, options = {}) ⇒ Cursor
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
# File 'lib/jmongo/cursor.rb', line 25
def initialize(collection, options={})
@collection = collection
@j_collection = collection.j_collection
@query_run = false
@selector = convert_selector_for_query(options[:selector])
@fields = convert_fields_for_query(options[:fields])
@admin = options.fetch(:admin, false)
@order = nil
@batch_size = Mongo::DEFAULT_BATCH_SIZE
@skip = 0
@limit = 0
_skip options[:skip]
_limit options[:limit]
_sort options[:order]
_batch_size options[:batch_size]
@hint = options[:hint]
@snapshot = options[:snapshot]
@explain = options[:explain]
@socket = options[:socket]
@timeout = options.fetch(:timeout, true)
@tailable = options.fetch(:tailable, false)
@transformer = options[:transformer]
@full_collection_name = "#{@collection.db.name}.#{@collection.name}"
spawn_cursor
end
|
Instance Attribute Details
#collection ⇒ Object
Returns the value of attribute collection.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def collection
@collection
end
|
Returns the value of attribute fields.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def fields
@fields
end
|
#full_collection_name ⇒ Object
Returns the value of attribute full_collection_name.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def full_collection_name
@full_collection_name
end
|
Returns the value of attribute hint.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def hint
@hint
end
|
Returns the value of attribute j_cursor.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def j_cursor
@j_cursor
end
|
Returns the value of attribute options.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def options
@options
end
|
Returns the value of attribute order.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def order
@order
end
|
Returns the value of attribute selector.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def selector
@selector
end
|
Returns the value of attribute snapshot.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def snapshot
@snapshot
end
|
Returns the value of attribute timeout.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def timeout
@timeout
end
|
Returns the value of attribute transformer.
20
21
22
|
# File 'lib/jmongo/cursor.rb', line 20
def transformer
@transformer
end
|
Instance Method Details
#add_option(opt) ⇒ Object
76
77
78
79
80
|
# File 'lib/jmongo/cursor.rb', line 76
def add_option(opt)
check_modifiable
@j_cursor.addOption(opt)
options
end
|
#alive? ⇒ Boolean
72
73
74
|
# File 'lib/jmongo/cursor.rb', line 72
def alive?
cursor_id != 0
end
|
#batch_size(size = nil) ⇒ Object
136
137
138
139
140
|
# File 'lib/jmongo/cursor.rb', line 136
def batch_size(size=nil)
_batch_size(size)
@j_cursor = @j_cursor.batchSize(@batch_size) if @batch_size
self
end
|
59
60
61
62
|
# File 'lib/jmongo/cursor.rb', line 59
def close
@query_run = true
@j_cursor.close
end
|
#closed? ⇒ Boolean
68
69
70
|
# File 'lib/jmongo/cursor.rb', line 68
def closed?
cursor_id == 0
end
|
#count(skip_and_limit = false) ⇒ Object
193
194
195
196
197
198
199
200
|
# File 'lib/jmongo/cursor.rb', line 193
def count(skip_and_limit = false)
if skip_and_limit && @skip && @limit
check_modifiable
@j_cursor.size
else
@j_cursor.count
end
end
|
#current_document ⇒ Object
98
99
100
|
# File 'lib/jmongo/cursor.rb', line 98
def current_document
_xform(from_dbobject(@j_cursor.curr))
end
|
#cursor_id ⇒ Object
64
65
66
|
# File 'lib/jmongo/cursor.rb', line 64
def cursor_id
@j_cursor.get_cursor_id
end
|
iterate directly from the mongo db
121
122
123
124
125
126
|
# File 'lib/jmongo/cursor.rb', line 121
def each
check_modifiable
while has_next?
yield next_document
end
end
|
202
203
204
|
# File 'lib/jmongo/cursor.rb', line 202
def explain
from_dbobject @j_cursor.explain
end
|
#has_next? ⇒ Boolean
116
117
118
|
# File 'lib/jmongo/cursor.rb', line 116
def has_next?
@j_cursor.has_next?
end
|
#limit(number_to_return = nil) ⇒ Object
150
151
152
153
154
155
156
|
# File 'lib/jmongo/cursor.rb', line 150
def limit(number_to_return=nil)
_limit(number_to_return)
wrap_invalid_op do
@j_cursor = @j_cursor.limit(@limit) if @limit
end
self
end
|
#map(&block) ⇒ Object
206
207
208
209
210
211
212
213
|
# File 'lib/jmongo/cursor.rb', line 206
def map(&block)
ret = []
rewind! unless has_next?
while has_next?
ret << block.call(__next)
end
ret
end
|
#next_document ⇒ Object
Also known as:
next
102
103
104
|
# File 'lib/jmongo/cursor.rb', line 102
def next_document
_xform(has_next? ? __next : nil)
end
|
#query_opts ⇒ Object
86
87
88
89
90
|
# File 'lib/jmongo/cursor.rb', line 86
def query_opts
warn "The method Cursor#query_opts has been deprecated " +
"and will removed in v2.0. Use Cursor#options instead."
options
end
|
#remove_option(opt) ⇒ Object
92
93
94
95
96
|
# File 'lib/jmongo/cursor.rb', line 92
def remove_option(opt)
check_modifiable
@j_cursor.setOptions(options & ~opt)
options
end
|
53
54
55
56
57
|
# File 'lib/jmongo/cursor.rb', line 53
def rewind!
close
@query_run = false
spawn_cursor
end
|
189
190
191
|
# File 'lib/jmongo/cursor.rb', line 189
def size
@j_cursor.size
end
|
#skip(number_to_skip = nil) ⇒ Object
166
167
168
169
170
171
172
|
# File 'lib/jmongo/cursor.rb', line 166
def skip(number_to_skip=nil)
_skip(number_to_skip)
wrap_invalid_op do
@j_cursor = @j_cursor.skip(@skip) if @skip
end
self
end
|
#sort(key_or_list, direction = nil) ⇒ Object
181
182
183
184
185
186
187
|
# File 'lib/jmongo/cursor.rb', line 181
def sort(key_or_list, direction=nil)
_sort(key_or_list, direction)
wrap_invalid_op do
@j_cursor = @j_cursor.sort(@order) if @order
end
self
end
|
215
216
217
218
219
220
221
222
|
# File 'lib/jmongo/cursor.rb', line 215
def to_a
ret = []
rewind! unless has_next?
while has_next?
ret << __next
end
ret
end
|
224
225
226
|
# File 'lib/jmongo/cursor.rb', line 224
def to_set
Set.new self.to_a
end
|