mongo 2.18.1 → 2.18.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/lib/mongo/bulk_write.rb +6 -4
- data/lib/mongo/client.rb +1 -1
- data/lib/mongo/collection/view/writable.rb +0 -2
- data/lib/mongo/collection.rb +150 -45
- data/lib/mongo/crypt/kms.rb +0 -1
- data/lib/mongo/error/invalid_read_option.rb +1 -1
- data/lib/mongo/operation/aggregate.rb +1 -2
- data/lib/mongo/operation/collections_info.rb +3 -15
- data/lib/mongo/operation/command.rb +1 -2
- data/lib/mongo/operation/count.rb +1 -2
- data/lib/mongo/operation/create.rb +1 -2
- data/lib/mongo/operation/create_index.rb +1 -2
- data/lib/mongo/operation/create_user.rb +1 -2
- data/lib/mongo/operation/delete.rb +0 -1
- data/lib/mongo/operation/distinct.rb +1 -2
- data/lib/mongo/operation/drop.rb +1 -2
- data/lib/mongo/operation/drop_database.rb +1 -2
- data/lib/mongo/operation/drop_index.rb +1 -2
- data/lib/mongo/operation/explain.rb +1 -3
- data/lib/mongo/operation/find/builder.rb +0 -1
- data/lib/mongo/operation/find.rb +1 -3
- data/lib/mongo/operation/get_more.rb +1 -3
- data/lib/mongo/operation/indexes.rb +1 -17
- data/lib/mongo/operation/insert.rb +0 -1
- data/lib/mongo/operation/kill_cursors.rb +1 -2
- data/lib/mongo/operation/list_collections.rb +1 -2
- data/lib/mongo/operation/map_reduce.rb +1 -2
- data/lib/mongo/operation/parallel_scan.rb +1 -2
- data/lib/mongo/operation/remove_user.rb +1 -2
- data/lib/mongo/operation/shared/{polymorphic_operation.rb → op_msg_executable.rb} +11 -6
- data/lib/mongo/operation/update.rb +0 -1
- data/lib/mongo/operation/update_user.rb +1 -2
- data/lib/mongo/operation/users_info.rb +1 -2
- data/lib/mongo/operation/write_command.rb +1 -2
- data/lib/mongo/operation.rb +1 -3
- data/lib/mongo/protocol.rb +0 -3
- data/lib/mongo/query_cache.rb +20 -20
- data/lib/mongo/session.rb +1 -1
- data/lib/mongo/version.rb +1 -1
- data/spec/integration/command_spec.rb +1 -23
- data/spec/mongo/client_construction_spec.rb +4 -4
- data/spec/mongo/collection_crud_spec.rb +56 -0
- data/spec/mongo/collection_spec.rb +11 -1
- data/spec/mongo/crypt/kms_spec.rb +12 -9
- data.tar.gz.sig +0 -0
- metadata +1133 -1186
- metadata.gz.sig +0 -0
- data/lib/mongo/operation/aggregate/command.rb +0 -55
- data/lib/mongo/operation/collections_info/command.rb +0 -48
- data/lib/mongo/operation/command/command.rb +0 -41
- data/lib/mongo/operation/count/command.rb +0 -47
- data/lib/mongo/operation/create/command.rb +0 -47
- data/lib/mongo/operation/create_index/command.rb +0 -61
- data/lib/mongo/operation/create_user/command.rb +0 -46
- data/lib/mongo/operation/delete/command.rb +0 -52
- data/lib/mongo/operation/distinct/command.rb +0 -47
- data/lib/mongo/operation/drop/command.rb +0 -41
- data/lib/mongo/operation/drop_database/command.rb +0 -41
- data/lib/mongo/operation/drop_index/command.rb +0 -45
- data/lib/mongo/operation/explain/command.rb +0 -58
- data/lib/mongo/operation/explain/legacy.rb +0 -52
- data/lib/mongo/operation/find/builder/legacy.rb +0 -123
- data/lib/mongo/operation/find/command.rb +0 -51
- data/lib/mongo/operation/find/legacy/result.rb +0 -46
- data/lib/mongo/operation/find/legacy.rb +0 -52
- data/lib/mongo/operation/get_more/command.rb +0 -43
- data/lib/mongo/operation/get_more/legacy.rb +0 -39
- data/lib/mongo/operation/indexes/command.rb +0 -42
- data/lib/mongo/operation/indexes/legacy.rb +0 -48
- data/lib/mongo/operation/insert/command.rb +0 -55
- data/lib/mongo/operation/kill_cursors/command.rb +0 -48
- data/lib/mongo/operation/list_collections/command.rb +0 -46
- data/lib/mongo/operation/map_reduce/command.rb +0 -51
- data/lib/mongo/operation/parallel_scan/command.rb +0 -57
- data/lib/mongo/operation/remove_user/command.rb +0 -46
- data/lib/mongo/operation/shared/op_msg_or_command.rb +0 -41
- data/lib/mongo/operation/shared/op_msg_or_find_command.rb +0 -44
- data/lib/mongo/operation/update/command.rb +0 -53
- data/lib/mongo/operation/update_user/command.rb +0 -45
- data/lib/mongo/operation/users_info/command.rb +0 -46
- data/lib/mongo/operation/write_command/command.rb +0 -51
- data/lib/mongo/protocol/delete.rb +0 -172
- data/lib/mongo/protocol/insert.rb +0 -181
- data/lib/mongo/protocol/update.rb +0 -214
- data/spec/mongo/operation/delete/command_spec.rb +0 -115
- data/spec/mongo/operation/find/legacy_spec.rb +0 -131
- data/spec/mongo/operation/get_more_spec.rb +0 -63
- data/spec/mongo/operation/insert/command_spec.rb +0 -118
- data/spec/mongo/operation/update/command_spec.rb +0 -122
- data/spec/mongo/protocol/delete_spec.rb +0 -185
- data/spec/mongo/protocol/insert_spec.rb +0 -179
- data/spec/mongo/protocol/update_spec.rb +0 -204
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44bd3e615b9e0e11f3803eae60a44b56fe5be326b7dd8f78b3c5aa42fbf7e621
|
4
|
+
data.tar.gz: 124bfd17f02e5b929e8b40dc797146770096270a83f7ea2389890efe83af1fbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 675df13e076a6a8b94e187e493cefb8fe4e1697cafdb4241898519f55b5abf3cceff7db1e9424bc2defdcba5a218e1bd8b149572ab891319c7c8a42f9699706a
|
7
|
+
data.tar.gz: 7593ef22c16038dc53e7e4e04c615dbc39c083bdffb6ef7d99f583d64613909079c7edb2b5e367117e0b3dca19a0a57ba3eb0ac92701bde48d750557a17cf567
|
checksums.yaml.gz.sig
CHANGED
Binary file
|
data/lib/mongo/bulk_write.rb
CHANGED
@@ -115,7 +115,8 @@ module Mongo
|
|
115
115
|
# )
|
116
116
|
#
|
117
117
|
# @param [ Mongo::Collection ] collection The collection.
|
118
|
-
# @param [
|
118
|
+
# @param [ Enumerable<Hash, BSON::Document> ] requests The requests,
|
119
|
+
# cannot be empty.
|
119
120
|
# @param [ Hash, BSON::Document ] options The options.
|
120
121
|
#
|
121
122
|
# @since 2.1.0
|
@@ -330,10 +331,9 @@ module Mongo
|
|
330
331
|
# ArgumentError ]
|
331
332
|
# if the document is invalid.
|
332
333
|
def validate_requests!
|
333
|
-
|
334
|
-
raise ArgumentError, "Bulk write requests cannot be empty"
|
335
|
-
end
|
334
|
+
requests_empty = true
|
336
335
|
@requests.each do |req|
|
336
|
+
requests_empty = false
|
337
337
|
if op = req.keys.first
|
338
338
|
if [:update_one, :update_many].include?(op)
|
339
339
|
if doc = maybe_first(req.dig(op, :update))
|
@@ -359,6 +359,8 @@ module Mongo
|
|
359
359
|
end
|
360
360
|
end
|
361
361
|
end
|
362
|
+
end.tap do
|
363
|
+
raise ArgumentError, "Bulk write requests cannot be empty" if requests_empty
|
362
364
|
end
|
363
365
|
end
|
364
366
|
|
data/lib/mongo/client.rb
CHANGED
@@ -1570,7 +1570,7 @@ module Mongo
|
|
1570
1570
|
# for custom classes implementing key access ([]).
|
1571
1571
|
# Instead reject common cases of strings and symbols.
|
1572
1572
|
if read.is_a?(String) || read.is_a?(Symbol)
|
1573
|
-
raise Error::InvalidReadOption.new(read,
|
1573
|
+
raise Error::InvalidReadOption.new(read, "the read preference must be specified as a hash: { mode: #{read.inspect} }")
|
1574
1574
|
end
|
1575
1575
|
|
1576
1576
|
if mode = read[:mode]
|
@@ -98,8 +98,6 @@ module Mongo
|
|
98
98
|
end.first&.fetch('value', nil)
|
99
99
|
end
|
100
100
|
|
101
|
-
# db['users'].bulk_write([{insert_one: {x: 1}}, {insert_one: {x: 2}}])
|
102
|
-
|
103
101
|
# Finds a single document and replaces it.
|
104
102
|
#
|
105
103
|
# @example Find a document and replace it, returning the original.
|
data/lib/mongo/collection.rb
CHANGED
@@ -83,7 +83,7 @@ module Mongo
|
|
83
83
|
#
|
84
84
|
# @param [ Object ] other The object to check.
|
85
85
|
#
|
86
|
-
# @return [ true
|
86
|
+
# @return [ true | false ] If the objects are equal.
|
87
87
|
#
|
88
88
|
# @since 2.0.0
|
89
89
|
def ==(other)
|
@@ -100,19 +100,59 @@ module Mongo
|
|
100
100
|
# @param [ String, Symbol ] name The collection name.
|
101
101
|
# @param [ Hash ] options The collection options.
|
102
102
|
#
|
103
|
-
# @option
|
103
|
+
# @option opts [ true | false ] :capped Create a fixed-sized collection.
|
104
|
+
# @option opts [ Hash ] :change_stream_pre_and_post_images Used to enable
|
105
|
+
# pre- and post-images on the created collection.
|
106
|
+
# The hash may have the following items:
|
107
|
+
# - *:enabled* -- true or false.
|
108
|
+
# @option opts [ Hash ] :clustered_index Create a clustered index.
|
109
|
+
# This option specifies how this collection should be clustered on _id.
|
110
|
+
# The hash may have the following items:
|
111
|
+
# - *:key* -- The clustered index key field. Must be set to { _id: 1 }.
|
112
|
+
# - *:unique* -- Must be set to true. The collection will not accept
|
113
|
+
# inserted or updated documents where the clustered index key value
|
114
|
+
# matches an existing value in the index.
|
115
|
+
# - *:name* -- Optional. A name that uniquely identifies the clustered index.
|
116
|
+
# @option opts [ Hash ] :collation The collation to use.
|
117
|
+
# @option opts [ Hash ] :encrypted_fields Hash describing encrypted fields
|
118
|
+
# for queryable encryption.
|
119
|
+
# @option opts [ Integer ] :expire_after Number indicating
|
120
|
+
# after how many seconds old time-series data should be deleted.
|
121
|
+
# @option opts [ Integer ] :max The maximum number of documents in a
|
122
|
+
# capped collection. The size limit takes precedents over max.
|
123
|
+
# @option opts [ Array<Hash> ] :pipeline An array of pipeline stages.
|
124
|
+
# A view will be created by applying this pipeline to the view_on
|
125
|
+
# collection or view.
|
126
|
+
# @option options [ Hash ] :read_concern The read concern options hash,
|
127
|
+
# with the following optional keys:
|
128
|
+
# - *:level* -- the read preference level as a symbol; valid values
|
129
|
+
# are *:local*, *:majority*, and *:snapshot*
|
130
|
+
# @option options [ Hash ] :read The read preference options.
|
131
|
+
# The hash may have the following items:
|
132
|
+
# - *:mode* -- read preference specified as a symbol; valid values are
|
133
|
+
# *:primary*, *:primary_preferred*, *:secondary*, *:secondary_preferred*
|
134
|
+
# and *:nearest*.
|
135
|
+
# - *:tag_sets* -- an array of hashes.
|
136
|
+
# - *:local_threshold*.
|
137
|
+
# @option opts [ Session ] :session The session to use for the operation.
|
138
|
+
# @option opts [ Integer ] :size The size of the capped collection.
|
139
|
+
# @option opts [ Hash ] :time_series Create a time-series collection.
|
140
|
+
# The hash may have the following items:
|
141
|
+
# - *:timeField* -- The name of the field which contains the date in each
|
142
|
+
# time series document.
|
143
|
+
# - *:metaField* -- The name of the field which contains metadata in each
|
144
|
+
# time series document.
|
145
|
+
# - *:granularity* -- Set the granularity to the value that is the closest
|
146
|
+
# match to the time span between consecutive incoming measurements.
|
147
|
+
# Possible values are "seconds" (default), "minutes", and "hours".
|
148
|
+
# @option opts [ Hash ] :validator Hash describing document validation
|
149
|
+
# options for the collection.
|
150
|
+
# @option opts [ String ] :view_on The name of the source collection or
|
151
|
+
# view from which to create a view.
|
152
|
+
# @option opts [ Hash ] :write Deprecated. Equivalent to :write_concern
|
104
153
|
# option.
|
105
|
-
# @option
|
154
|
+
# @option opts [ Hash ] :write_concern The write concern options.
|
106
155
|
# Can be :w => Integer|String, :fsync => Boolean, :j => Boolean.
|
107
|
-
# @option options [ Hash ] :time_series Create a time-series collection.
|
108
|
-
# See https://mongodb.com/docs/manual/core/timeseries-collections/ for more
|
109
|
-
# information about time-series collection.
|
110
|
-
# @option options [ Integer ] :expire_after Number indicating
|
111
|
-
# after how many seconds old time-series data should be deleted.
|
112
|
-
# @options clustered_index [ Hash ] :clustered_index Create a clustered index.
|
113
|
-
# This option specifies how this collection should be clustered on _id.
|
114
|
-
# See https://www.mongodb.com/docs/v5.3/reference/method/db.createCollection/#std-label-db.createCollection.clusteredIndex
|
115
|
-
# for more information about this option.
|
116
156
|
#
|
117
157
|
# @since 2.0.0
|
118
158
|
def initialize(database, name, options = {})
|
@@ -204,17 +244,37 @@ module Mongo
|
|
204
244
|
wc
|
205
245
|
end
|
206
246
|
|
207
|
-
# Provides a new collection with either a new read preference
|
208
|
-
# merged over the existing read preference /
|
247
|
+
# Provides a new collection with either a new read preference, new read
|
248
|
+
# concern or new write concern merged over the existing read preference /
|
249
|
+
# read concern / write concern.
|
209
250
|
#
|
210
251
|
# @example Get a collection with a changed read preference.
|
211
252
|
# collection.with(read: { mode: :primary_preferred })
|
253
|
+
|
254
|
+
# @example Get a collection with a changed read concern.
|
255
|
+
# collection.with(read_concern: { level: :majority })
|
212
256
|
#
|
213
257
|
# @example Get a collection with a changed write concern.
|
214
258
|
# collection.with(write_concern: { w: 3 })
|
215
|
-
|
259
|
+
#
|
216
260
|
# @param [ Hash ] new_options The new options to use.
|
217
261
|
#
|
262
|
+
# @option new_options [ Hash ] :read The read preference options.
|
263
|
+
# The hash may have the following items:
|
264
|
+
# - *:mode* -- read preference specified as a symbol; valid values are
|
265
|
+
# *:primary*, *:primary_preferred*, *:secondary*, *:secondary_preferred*
|
266
|
+
# and *:nearest*.
|
267
|
+
# - *:tag_sets* -- an array of hashes.
|
268
|
+
# - *:local_threshold*.
|
269
|
+
# @option new_options [ Hash ] :read_concern The read concern options hash,
|
270
|
+
# with the following optional keys:
|
271
|
+
# - *:level* -- the read preference level as a symbol; valid values
|
272
|
+
# are *:local*, *:majority*, and *:snapshot*
|
273
|
+
# @option new_options [ Hash ] :write Deprecated. Equivalent to :write_concern
|
274
|
+
# option.
|
275
|
+
# @option new_options [ Hash ] :write_concern The write concern options.
|
276
|
+
# Can be :w => Integer|String, :fsync => Boolean, :j => Boolean.
|
277
|
+
#
|
218
278
|
# @return [ Mongo::Collection ] A new collection instance.
|
219
279
|
#
|
220
280
|
# @since 2.1.0
|
@@ -237,7 +297,7 @@ module Mongo
|
|
237
297
|
# @example Is the collection capped?
|
238
298
|
# collection.capped?
|
239
299
|
#
|
240
|
-
# @return [ true
|
300
|
+
# @return [ true | false ] If the collection is capped.
|
241
301
|
#
|
242
302
|
# @since 2.0.0
|
243
303
|
def capped?
|
@@ -251,17 +311,48 @@ module Mongo
|
|
251
311
|
#
|
252
312
|
# @param [ Hash ] opts The options for the create operation.
|
253
313
|
#
|
254
|
-
# @option opts [
|
255
|
-
# @option opts [ Hash ] :write_concern The write concern options.
|
256
|
-
# @option opts [ Hash ] :time_series Create a time-series collection.
|
257
|
-
# @option opts [ Integer ] :expire_after Number indicating
|
258
|
-
# after how many seconds old time-series data should be deleted.
|
314
|
+
# @option opts [ true | false ] :capped Create a fixed-sized collection.
|
259
315
|
# @option opts [ Hash ] :change_stream_pre_and_post_images Used to enable
|
260
316
|
# pre- and post-images on the created collection.
|
317
|
+
# The hash may have the following items:
|
318
|
+
# - *:enabled* -- true or false.
|
319
|
+
# @option opts [ Hash ] :clustered_index Create a clustered index.
|
320
|
+
# This option specifies how this collection should be clustered on _id.
|
321
|
+
# The hash may have the following items:
|
322
|
+
# - *:key* -- The clustered index key field. Must be set to { _id: 1 }.
|
323
|
+
# - *:unique* -- Must be set to true. The collection will not accept
|
324
|
+
# inserted or updated documents where the clustered index key value
|
325
|
+
# matches an existing value in the index.
|
326
|
+
# - *:name* -- Optional. A name that uniquely identifies the clustered index.
|
327
|
+
# @option opts [ Hash ] :collation The collation to use.
|
261
328
|
# @option opts [ Hash ] :encrypted_fields Hash describing encrypted fields
|
262
329
|
# for queryable encryption.
|
330
|
+
# @option opts [ Integer ] :expire_after Number indicating
|
331
|
+
# after how many seconds old time-series data should be deleted.
|
332
|
+
# @option opts [ Integer ] :max The maximum number of documents in a
|
333
|
+
# capped collection. The size limit takes precedents over max.
|
334
|
+
# @option opts [ Array<Hash> ] :pipeline An array of pipeline stages.
|
335
|
+
# A view will be created by applying this pipeline to the view_on
|
336
|
+
# collection or view.
|
337
|
+
# @option opts [ Session ] :session The session to use for the operation.
|
338
|
+
# @option opts [ Integer ] :size The size of the capped collection.
|
339
|
+
# @option opts [ Hash ] :time_series Create a time-series collection.
|
340
|
+
# The hash may have the following items:
|
341
|
+
# - *:timeField* -- The name of the field which contains the date in each
|
342
|
+
# time series document.
|
343
|
+
# - *:metaField* -- The name of the field which contains metadata in each
|
344
|
+
# time series document.
|
345
|
+
# - *:granularity* -- Set the granularity to the value that is the closest
|
346
|
+
# match to the time span between consecutive incoming measurements.
|
347
|
+
# Possible values are "seconds" (default), "minutes", and "hours".
|
263
348
|
# @option opts [ Hash ] :validator Hash describing document validation
|
264
349
|
# options for the collection.
|
350
|
+
# @option opts [ String ] :view_on The name of the source collection or
|
351
|
+
# view from which to create a view.
|
352
|
+
# @option opts [ Hash ] :write Deprecated. Equivalent to :write_concern
|
353
|
+
# option.
|
354
|
+
# @option opts [ Hash ] :write_concern The write concern options.
|
355
|
+
# Can be :w => Integer|String, :fsync => Boolean, :j => Boolean.
|
265
356
|
#
|
266
357
|
# @return [ Result ] The result of the command.
|
267
358
|
#
|
@@ -318,8 +409,10 @@ module Mongo
|
|
318
409
|
#
|
319
410
|
# @param [ Hash ] opts The options for the drop operation.
|
320
411
|
#
|
321
|
-
# @option
|
412
|
+
# @option opts [ Session ] :session The session to use for the operation.
|
322
413
|
# @option opts [ Hash ] :write_concern The write concern options.
|
414
|
+
# @option opts [ Hash | nil ] :encrypted_fields Encrypted fields hash that
|
415
|
+
# was provided to `create` collection helper.
|
323
416
|
#
|
324
417
|
# @return [ Result ] The result of the command.
|
325
418
|
#
|
@@ -356,27 +449,27 @@ module Mongo
|
|
356
449
|
# @param [ Hash ] filter The filter to use in the find.
|
357
450
|
# @param [ Hash ] options The options for the find.
|
358
451
|
#
|
359
|
-
# @option options [ true
|
452
|
+
# @option options [ true | false ] :allow_disk_use When set to true, the
|
360
453
|
# server can write temporary data to disk while executing the find
|
361
454
|
# operation. This option is only available on MongoDB server versions
|
362
455
|
# 4.4 and newer.
|
363
|
-
# @option options [ true
|
456
|
+
# @option options [ true | false ] :allow_partial_results Allows the query to get partial
|
364
457
|
# results if some shards are down.
|
365
458
|
# @option options [ Integer ] :batch_size The number of documents returned in each batch
|
366
459
|
# of results from MongoDB.
|
367
460
|
# @option options [ Hash ] :collation The collation to use.
|
368
|
-
# @option options [ Object ] :comment A user-provided
|
369
|
-
#
|
461
|
+
# @option options [ Object ] :comment A user-provided comment to attach to
|
462
|
+
# this command.
|
370
463
|
# @option options [ :tailable, :tailable_await ] :cursor_type The type of cursor to use.
|
371
464
|
# @option options [ Integer ] :limit The max number of docs to return from the query.
|
372
465
|
# @option options [ Integer ] :max_time_ms
|
373
466
|
# The maximum amount of time to allow the query to run, in milliseconds.
|
374
467
|
# @option options [ Hash ] :modifiers A document containing meta-operators modifying the
|
375
468
|
# output or behavior of a query.
|
376
|
-
# @option options [ true
|
469
|
+
# @option options [ true | false ] :no_cursor_timeout The server normally times out idle
|
377
470
|
# cursors after an inactivity period (10 minutes) to prevent excess memory use.
|
378
471
|
# Set this option to prevent that.
|
379
|
-
# @option options [ true
|
472
|
+
# @option options [ true | false ] :oplog_replay For internal replication
|
380
473
|
# use only, applications should not set this option.
|
381
474
|
# @option options [ Hash ] :projection The fields to include or exclude from each doc
|
382
475
|
# in the result set.
|
@@ -402,11 +495,11 @@ module Mongo
|
|
402
495
|
# @param [ Array<Hash> ] pipeline The aggregation pipeline.
|
403
496
|
# @param [ Hash ] options The aggregation options.
|
404
497
|
#
|
405
|
-
# @option options [ true
|
498
|
+
# @option options [ true | false ] :allow_disk_use Set to true if disk
|
406
499
|
# usage is allowed during the aggregation.
|
407
500
|
# @option options [ Integer ] :batch_size The number of documents to return
|
408
501
|
# per batch.
|
409
|
-
# @option options [ true
|
502
|
+
# @option options [ true | false ] :bypass_document_validation Whether or
|
410
503
|
# not to skip document level validation.
|
411
504
|
# @option options [ Hash ] :collation The collation to use.
|
412
505
|
# @option options [ Object ] :comment A user-provided
|
@@ -416,7 +509,7 @@ module Mongo
|
|
416
509
|
# See the server documentation for details.
|
417
510
|
# @option options [ Integer ] :max_time_ms The maximum amount of time in
|
418
511
|
# milliseconds to allow the aggregation to run.
|
419
|
-
# @option options [ true
|
512
|
+
# @option options [ true | false ] :use_cursor Indicates whether the command
|
420
513
|
# will request that the server provide results using a cursor. Note that
|
421
514
|
# as of server version 3.6, aggregations always provide results using a
|
422
515
|
# cursor and this option is therefore not valid.
|
@@ -642,7 +735,13 @@ module Mongo
|
|
642
735
|
# @param [ Hash ] document The document to insert.
|
643
736
|
# @param [ Hash ] opts The insert options.
|
644
737
|
#
|
738
|
+
# @option opts [ true | false ] :bypass_document_validation Whether or
|
739
|
+
# not to skip document level validation.
|
740
|
+
# @option opts [ Object ] :comment A user-provided comment to attach to
|
741
|
+
# this command.
|
645
742
|
# @option opts [ Session ] :session The session to use for the operation.
|
743
|
+
# @option opts [ Hash ] :write_concern The write concern options.
|
744
|
+
# Can be :w => Integer, :fsync => Boolean, :j => Boolean.
|
646
745
|
#
|
647
746
|
# @return [ Result ] The database response wrapper.
|
648
747
|
#
|
@@ -684,12 +783,18 @@ module Mongo
|
|
684
783
|
# @example Insert documents into the collection.
|
685
784
|
# collection.insert_many([{ name: 'test' }])
|
686
785
|
#
|
687
|
-
# @param [
|
786
|
+
# @param [ Enumerable<Hash> ] documents The documents to insert.
|
688
787
|
# @param [ Hash ] options The insert options.
|
689
788
|
#
|
789
|
+
# @option options [ true | false ] :bypass_document_validation Whether or
|
790
|
+
# not to skip document level validation.
|
791
|
+
# @option options [ Object ] :comment A user-provided comment to attach to
|
792
|
+
# this command.
|
690
793
|
# @option options [ true | false ] :ordered Whether the operations
|
691
794
|
# should be executed in order.
|
692
795
|
# @option options [ Session ] :session The session to use for the operation.
|
796
|
+
# @option options [ Hash ] :write_concern The write concern options.
|
797
|
+
# Can be :w => Integer, :fsync => Boolean, :j => Boolean.
|
693
798
|
#
|
694
799
|
# @return [ Result ] The database response wrapper.
|
695
800
|
#
|
@@ -706,14 +811,14 @@ module Mongo
|
|
706
811
|
# @example Execute a bulk write.
|
707
812
|
# collection.bulk_write(operations, options)
|
708
813
|
#
|
709
|
-
# @param [
|
814
|
+
# @param [ Enumerable<Hash> ] requests The bulk write requests.
|
710
815
|
# @param [ Hash ] options The options.
|
711
816
|
#
|
712
|
-
# @option options [ true
|
817
|
+
# @option options [ true | false ] :ordered Whether the operations
|
713
818
|
# should be executed in order.
|
714
819
|
# @option options [ Hash ] :write_concern The write concern options.
|
715
820
|
# Can be :w => Integer, :fsync => Boolean, :j => Boolean.
|
716
|
-
# @option options [ true
|
821
|
+
# @option options [ true | false ] :bypass_document_validation Whether or
|
717
822
|
# not to skip document level validation.
|
718
823
|
# @option options [ Session ] :session The session to use for the set of operations.
|
719
824
|
# @option options [ Hash ] :let Mapping of variables to use in the command.
|
@@ -802,9 +907,9 @@ module Mongo
|
|
802
907
|
# @param [ Hash ] replacement The replacement document..
|
803
908
|
# @param [ Hash ] options The options.
|
804
909
|
#
|
805
|
-
# @option options [ true
|
910
|
+
# @option options [ true | false ] :upsert Whether to upsert if the
|
806
911
|
# document doesn't exist.
|
807
|
-
# @option options [ true
|
912
|
+
# @option options [ true | false ] :bypass_document_validation Whether or
|
808
913
|
# not to skip document level validation.
|
809
914
|
# @option options [ Hash ] :collation The collation to use.
|
810
915
|
# @option options [ Session ] :session The session to use.
|
@@ -829,9 +934,9 @@ module Mongo
|
|
829
934
|
# @param [ Hash | Array<Hash> ] update The update document or pipeline.
|
830
935
|
# @param [ Hash ] options The options.
|
831
936
|
#
|
832
|
-
# @option options [ true
|
937
|
+
# @option options [ true | false ] :upsert Whether to upsert if the
|
833
938
|
# document doesn't exist.
|
834
|
-
# @option options [ true
|
939
|
+
# @option options [ true | false ] :bypass_document_validation Whether or
|
835
940
|
# not to skip document level validation.
|
836
941
|
# @option options [ Hash ] :collation The collation to use.
|
837
942
|
# @option options [ Array ] :array_filters A set of filters specifying to which array elements
|
@@ -858,9 +963,9 @@ module Mongo
|
|
858
963
|
# @param [ Hash | Array<Hash> ] update The update document or pipeline.
|
859
964
|
# @param [ Hash ] options The options.
|
860
965
|
#
|
861
|
-
# @option options [ true
|
966
|
+
# @option options [ true | false ] :upsert Whether to upsert if the
|
862
967
|
# document doesn't exist.
|
863
|
-
# @option options [ true
|
968
|
+
# @option options [ true | false ] :bypass_document_validation Whether or
|
864
969
|
# not to skip document level validation.
|
865
970
|
# @option options [ Hash ] :collation The collation to use.
|
866
971
|
# @option options [ Array ] :array_filters A set of filters specifying to which array elements
|
@@ -927,8 +1032,8 @@ module Mongo
|
|
927
1032
|
# @option options [ Hash ] :sort The key and direction pairs by which the result set
|
928
1033
|
# will be sorted.
|
929
1034
|
# @option options [ Symbol ] :return_document Either :before or :after.
|
930
|
-
# @option options [ true
|
931
|
-
# @option options [ true
|
1035
|
+
# @option options [ true | false ] :upsert Whether to upsert if the document doesn't exist.
|
1036
|
+
# @option options [ true | false ] :bypass_document_validation Whether or
|
932
1037
|
# not to skip document level validation.
|
933
1038
|
# @option options [ Hash ] :write_concern The write concern options.
|
934
1039
|
# Defaults to the collection's write concern.
|
@@ -967,8 +1072,8 @@ module Mongo
|
|
967
1072
|
# @option options [ Hash ] :sort The key and direction pairs by which the result set
|
968
1073
|
# will be sorted.
|
969
1074
|
# @option options [ Symbol ] :return_document Either :before or :after.
|
970
|
-
# @option options [ true
|
971
|
-
# @option options [ true
|
1075
|
+
# @option options [ true | false ] :upsert Whether to upsert if the document doesn't exist.
|
1076
|
+
# @option options [ true | false ] :bypass_document_validation Whether or
|
972
1077
|
# not to skip document level validation.
|
973
1078
|
# @option options [ Hash ] :write_concern The write concern options.
|
974
1079
|
# Defaults to the collection's write concern.
|
data/lib/mongo/crypt/kms.rb
CHANGED
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/aggregate/command'
|
19
18
|
require 'mongo/operation/aggregate/op_msg'
|
20
19
|
require 'mongo/operation/aggregate/result'
|
21
20
|
|
@@ -33,7 +32,7 @@ module Mongo
|
|
33
32
|
# @since 2.0.0
|
34
33
|
class Aggregate
|
35
34
|
include Specifiable
|
36
|
-
include
|
35
|
+
include OpMsgExecutable
|
37
36
|
end
|
38
37
|
end
|
39
38
|
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/collections_info/command'
|
19
18
|
require 'mongo/operation/collections_info/result'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,23 +27,12 @@ module Mongo
|
|
28
27
|
# @since 2.0.0
|
29
28
|
class CollectionsInfo
|
30
29
|
include Specifiable
|
31
|
-
include
|
32
|
-
include PolymorphicLookup
|
30
|
+
include OpMsgExecutable
|
33
31
|
|
34
32
|
private
|
35
33
|
|
36
|
-
def final_operation
|
37
|
-
|
38
|
-
if connection.features.op_msg_enabled?
|
39
|
-
ListCollections::OpMsg
|
40
|
-
else
|
41
|
-
ListCollections::Command
|
42
|
-
end
|
43
|
-
else
|
44
|
-
CollectionsInfo::Command
|
45
|
-
end
|
46
|
-
|
47
|
-
op_class.new(spec)
|
34
|
+
def final_operation
|
35
|
+
ListCollections::OpMsg.new(spec)
|
48
36
|
end
|
49
37
|
end
|
50
38
|
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/command/command'
|
19
18
|
require 'mongo/operation/command/op_msg'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,7 +27,7 @@ module Mongo
|
|
28
27
|
# @since 2.0.0
|
29
28
|
class Command
|
30
29
|
include Specifiable
|
31
|
-
include
|
30
|
+
include OpMsgExecutable
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/count/command'
|
19
18
|
require 'mongo/operation/count/op_msg'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,7 +27,7 @@ module Mongo
|
|
28
27
|
# @since 2.0.0
|
29
28
|
class Count
|
30
29
|
include Specifiable
|
31
|
-
include
|
30
|
+
include OpMsgExecutable
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/create/command'
|
19
18
|
require 'mongo/operation/create/op_msg'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,7 +27,7 @@ module Mongo
|
|
28
27
|
# @since 2.0.0
|
29
28
|
class Create
|
30
29
|
include Specifiable
|
31
|
-
include
|
30
|
+
include OpMsgExecutable
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/create_index/command'
|
19
18
|
require 'mongo/operation/create_index/op_msg'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,7 +27,7 @@ module Mongo
|
|
28
27
|
# @since 2.0.0
|
29
28
|
class CreateIndex
|
30
29
|
include Specifiable
|
31
|
-
include
|
30
|
+
include OpMsgExecutable
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/create_user/command'
|
19
18
|
require 'mongo/operation/create_user/op_msg'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,7 +27,7 @@ module Mongo
|
|
28
27
|
# @since 2.0.0
|
29
28
|
class CreateUser
|
30
29
|
include Specifiable
|
31
|
-
include
|
30
|
+
include OpMsgExecutable
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/delete/command'
|
19
18
|
require 'mongo/operation/delete/op_msg'
|
20
19
|
require 'mongo/operation/delete/result'
|
21
20
|
require 'mongo/operation/delete/bulk_result'
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/distinct/command'
|
19
18
|
require 'mongo/operation/distinct/op_msg'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,7 +27,7 @@ module Mongo
|
|
28
27
|
# @since 2.5.0
|
29
28
|
class Distinct
|
30
29
|
include Specifiable
|
31
|
-
include
|
30
|
+
include OpMsgExecutable
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
data/lib/mongo/operation/drop.rb
CHANGED
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/drop/command'
|
19
18
|
require 'mongo/operation/drop/op_msg'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,7 +27,7 @@ module Mongo
|
|
28
27
|
# @since 2.4.0
|
29
28
|
class Drop
|
30
29
|
include Specifiable
|
31
|
-
include
|
30
|
+
include OpMsgExecutable
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/drop_database/command'
|
19
18
|
require 'mongo/operation/drop_database/op_msg'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,7 +27,7 @@ module Mongo
|
|
28
27
|
# @since 2.4.0
|
29
28
|
class DropDatabase
|
30
29
|
include Specifiable
|
31
|
-
include
|
30
|
+
include OpMsgExecutable
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|
@@ -15,7 +15,6 @@
|
|
15
15
|
# See the License for the specific language governing permissions and
|
16
16
|
# limitations under the License.
|
17
17
|
|
18
|
-
require 'mongo/operation/drop_index/command'
|
19
18
|
require 'mongo/operation/drop_index/op_msg'
|
20
19
|
|
21
20
|
module Mongo
|
@@ -28,7 +27,7 @@ module Mongo
|
|
28
27
|
# @since 2.0.0
|
29
28
|
class DropIndex
|
30
29
|
include Specifiable
|
31
|
-
include
|
30
|
+
include OpMsgExecutable
|
32
31
|
end
|
33
32
|
end
|
34
33
|
end
|