mongo 2.5.1 → 2.5.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 +3 -2
- data.tar.gz.sig +0 -0
- data/Rakefile +1 -1
- data/lib/mongo/auth/user/view.rb +4 -4
- data/lib/mongo/bulk_write.rb +14 -19
- data/lib/mongo/cluster.rb +4 -2
- data/lib/mongo/cluster/app_metadata.rb +1 -1
- data/lib/mongo/cluster/reapers/cursor_reaper.rb +1 -1
- data/lib/mongo/collection.rb +13 -13
- data/lib/mongo/collection/view.rb +2 -1
- data/lib/mongo/collection/view/aggregation.rb +1 -1
- data/lib/mongo/collection/view/change_stream.rb +1 -1
- data/lib/mongo/collection/view/iterable.rb +4 -4
- data/lib/mongo/collection/view/map_reduce.rb +3 -3
- data/lib/mongo/collection/view/readable.rb +26 -20
- data/lib/mongo/collection/view/writable.rb +12 -12
- data/lib/mongo/cursor.rb +4 -7
- data/lib/mongo/database.rb +2 -2
- data/lib/mongo/database/view.rb +1 -1
- data/lib/mongo/grid/stream/write.rb +1 -1
- data/lib/mongo/index/view.rb +3 -3
- data/lib/mongo/operation.rb +38 -24
- data/lib/mongo/operation/aggregate.rb +53 -0
- data/lib/mongo/operation/aggregate/command.rb +59 -0
- data/lib/mongo/operation/aggregate/op_msg.rb +54 -0
- data/lib/mongo/operation/aggregate/result.rb +87 -0
- data/lib/mongo/operation/collections_info.rb +62 -0
- data/lib/mongo/operation/collections_info/result.rb +39 -0
- data/lib/mongo/operation/{executable.rb → command.rb} +16 -13
- data/lib/mongo/operation/command/command.rb +38 -0
- data/lib/mongo/operation/command/op_msg.rb +53 -0
- data/lib/mongo/operation/count.rb +48 -0
- data/lib/mongo/operation/count/command.rb +38 -0
- data/lib/mongo/operation/count/op_msg.rb +38 -0
- data/lib/mongo/operation/create.rb +48 -0
- data/lib/mongo/operation/create/command.rb +38 -0
- data/lib/mongo/operation/create/op_msg.rb +37 -0
- data/lib/mongo/operation/create_index.rb +48 -0
- data/lib/mongo/operation/create_index/command.rb +42 -0
- data/lib/mongo/operation/create_index/op_msg.rb +41 -0
- data/lib/mongo/operation/create_user.rb +48 -0
- data/lib/mongo/operation/{commands → create_user}/command.rb +13 -19
- data/lib/mongo/operation/create_user/op_msg.rb +41 -0
- data/lib/mongo/operation/delete.rb +38 -0
- data/lib/mongo/operation/delete/bulk_result.rb +46 -0
- data/lib/mongo/operation/delete/command.rb +59 -0
- data/lib/mongo/operation/delete/legacy.rb +69 -0
- data/lib/mongo/operation/delete/op_msg.rb +60 -0
- data/lib/mongo/operation/{write/delete → delete}/result.rb +18 -16
- data/lib/mongo/operation/distinct.rb +48 -0
- data/lib/mongo/operation/distinct/command.rb +38 -0
- data/lib/mongo/operation/distinct/op_msg.rb +38 -0
- data/lib/mongo/operation/drop.rb +48 -0
- data/lib/mongo/operation/drop/command.rb +38 -0
- data/lib/mongo/operation/{commands/count.rb → drop/op_msg.rb} +16 -6
- data/lib/mongo/operation/drop_database.rb +48 -0
- data/lib/mongo/operation/drop_database/command.rb +38 -0
- data/lib/mongo/operation/drop_database/op_msg.rb +37 -0
- data/lib/mongo/operation/drop_index.rb +48 -0
- data/lib/mongo/operation/drop_index/command.rb +42 -0
- data/lib/mongo/operation/{limited.rb → drop_index/op_msg.rb} +19 -15
- data/lib/mongo/operation/explain.rb +52 -0
- data/lib/mongo/operation/explain/command.rb +54 -0
- data/lib/mongo/operation/explain/legacy.rb +53 -0
- data/lib/mongo/operation/explain/op_msg.rb +54 -0
- data/lib/mongo/operation/explain/result.rb +50 -0
- data/lib/mongo/operation/find.rb +52 -0
- data/lib/mongo/operation/find/command.rb +54 -0
- data/lib/mongo/operation/find/legacy.rb +55 -0
- data/lib/mongo/operation/{read/query → find/legacy}/result.rb +3 -3
- data/lib/mongo/operation/find/op_msg.rb +59 -0
- data/lib/mongo/operation/find/result.rb +60 -0
- data/lib/mongo/operation/{commands/users_info/result.rb → get_more.rb} +20 -22
- data/lib/mongo/operation/get_more/command.rb +54 -0
- data/lib/mongo/operation/{commands/find.rb → get_more/legacy.rb} +15 -8
- data/lib/mongo/operation/get_more/op_msg.rb +58 -0
- data/lib/mongo/operation/get_more/result.rb +60 -0
- data/lib/mongo/operation/indexes.rb +52 -0
- data/lib/mongo/operation/indexes/command.rb +54 -0
- data/lib/mongo/operation/indexes/legacy.rb +57 -0
- data/lib/mongo/operation/indexes/op_msg.rb +54 -0
- data/lib/mongo/operation/indexes/result.rb +97 -0
- data/lib/mongo/operation/insert.rb +40 -0
- data/lib/mongo/operation/insert/bulk_result.rb +70 -0
- data/lib/mongo/operation/insert/command.rb +65 -0
- data/lib/mongo/operation/insert/legacy.rb +72 -0
- data/lib/mongo/operation/insert/op_msg.rb +61 -0
- data/lib/mongo/operation/insert/result.rb +64 -0
- data/lib/mongo/operation/kill_cursors.rb +25 -14
- data/lib/mongo/operation/{takes_write_concern.rb → kill_cursors/command.rb} +14 -12
- data/lib/mongo/operation/kill_cursors/legacy.rb +37 -0
- data/lib/mongo/operation/kill_cursors/op_msg.rb +37 -0
- data/lib/mongo/operation/list_collections.rb +49 -0
- data/lib/mongo/operation/list_collections/command.rb +60 -0
- data/lib/mongo/operation/list_collections/op_msg.rb +53 -0
- data/lib/mongo/operation/list_collections/result.rb +92 -0
- data/lib/mongo/operation/map_reduce.rb +49 -0
- data/lib/mongo/operation/map_reduce/command.rb +55 -0
- data/lib/mongo/operation/map_reduce/op_msg.rb +54 -0
- data/lib/mongo/operation/map_reduce/result.rb +129 -0
- data/lib/mongo/operation/parallel_scan.rb +49 -0
- data/lib/mongo/operation/parallel_scan/command.rb +67 -0
- data/lib/mongo/operation/parallel_scan/op_msg.rb +61 -0
- data/lib/mongo/operation/parallel_scan/result.rb +61 -0
- data/lib/mongo/operation/remove_user.rb +48 -0
- data/lib/mongo/operation/remove_user/command.rb +42 -0
- data/lib/mongo/operation/remove_user/op_msg.rb +41 -0
- data/lib/mongo/operation/result.rb +3 -1
- data/lib/mongo/operation/shared/bypass_document_validation.rb +36 -0
- data/lib/mongo/operation/{causally_consistent.rb → shared/causal_consistency_supported.rb} +5 -5
- data/lib/mongo/operation/shared/executable.rb +45 -0
- data/lib/mongo/operation/shared/idable.rb +64 -0
- data/lib/mongo/operation/{commands/distinct.rb → shared/limited.rb} +10 -7
- data/lib/mongo/operation/{object_id_generator.rb → shared/object_id_generator.rb} +2 -2
- data/lib/mongo/operation/{read_preference.rb → shared/read_preference_supported.rb} +14 -24
- data/lib/mongo/operation/shared/result/aggregatable.rb +75 -0
- data/lib/mongo/operation/shared/sessions_supported.rb +79 -0
- data/lib/mongo/operation/{specifiable.rb → shared/specifiable.rb} +40 -4
- data/lib/mongo/operation/shared/write.rb +81 -0
- data/lib/mongo/operation/shared/write_concern_supported.rb +39 -0
- data/lib/mongo/operation/update.rb +38 -0
- data/lib/mongo/operation/update/bulk_result.rb +126 -0
- data/lib/mongo/operation/update/command.rb +60 -0
- data/lib/mongo/operation/update/legacy.rb +80 -0
- data/lib/mongo/operation/{write/update → update/legacy}/result.rb +4 -82
- data/lib/mongo/operation/update/op_msg.rb +60 -0
- data/lib/mongo/operation/update/result.rb +102 -0
- data/lib/mongo/operation/update_user.rb +48 -0
- data/lib/mongo/operation/update_user/command.rb +41 -0
- data/lib/mongo/operation/update_user/op_msg.rb +41 -0
- data/lib/mongo/operation/users_info.rb +49 -0
- data/lib/mongo/operation/users_info/command.rb +58 -0
- data/lib/mongo/operation/users_info/op_msg.rb +57 -0
- data/lib/mongo/operation/{commands/collections_info → users_info}/result.rb +18 -17
- data/lib/mongo/server.rb +3 -5
- data/lib/mongo/server/connectable.rb +3 -3
- data/lib/mongo/server/connection.rb +14 -0
- data/lib/mongo/server_selector.rb +1 -1
- data/lib/mongo/server_selector/selectable.rb +3 -12
- data/lib/mongo/session.rb +13 -1
- data/lib/mongo/session/session_pool.rb +1 -1
- data/lib/mongo/version.rb +1 -1
- data/spec/mongo/client_spec.rb +15 -22
- data/spec/mongo/cluster/app_metadata_spec.rb +19 -3
- data/spec/mongo/cluster/cursor_reaper_spec.rb +37 -0
- data/spec/mongo/cluster_spec.rb +2 -2
- data/spec/mongo/collection/view/change_stream_spec.rb +2 -2
- data/spec/mongo/collection_spec.rb +105 -14
- data/spec/mongo/cursor_spec.rb +11 -11
- data/spec/mongo/grid/fs_bucket_spec.rb +5 -0
- data/spec/mongo/max_staleness_spec.rb +3 -1
- data/spec/mongo/operation/{commands/aggregate → aggregate}/result_spec.rb +1 -1
- data/spec/mongo/operation/{commands/aggregate_spec.rb → aggregate_spec.rb} +1 -1
- data/spec/mongo/operation/{commands/collections_info_spec.rb → collections_info_spec.rb} +4 -2
- data/spec/mongo/operation/{commands/command_spec.rb → command_spec.rb} +1 -1
- data/spec/mongo/operation/{write/command/create_index_spec.rb → create_index_spec.rb} +1 -1
- data/spec/mongo/operation/{write/create_user_spec.rb → create_user_spec.rb} +1 -1
- data/spec/mongo/operation/{write/bulk/delete_spec.rb → delete/bulk_spec.rb} +8 -8
- data/spec/mongo/operation/delete/command_spec.rb +111 -0
- data/spec/mongo/operation/{write/command/delete_spec.rb → delete/op_msg_spec.rb} +40 -34
- data/spec/mongo/operation/{write/delete_spec.rb → delete_spec.rb} +7 -7
- data/spec/mongo/operation/{write/command/drop_index_spec.rb → drop_index_spec.rb} +1 -1
- data/spec/mongo/operation/{read/query_spec.rb → find/legacy_spec.rb} +2 -2
- data/spec/mongo/operation/{read/get_more_spec.rb → get_more_spec.rb} +3 -3
- data/spec/mongo/operation/{commands/indexes_spec.rb → indexes_spec.rb} +6 -4
- data/spec/mongo/operation/{write/bulk/insert_spec.rb → insert/bulk_spec.rb} +9 -9
- data/spec/mongo/operation/insert/command_spec.rb +110 -0
- data/spec/mongo/operation/{write/command/insert_spec.rb → insert/op_msg_spec.rb} +51 -41
- data/spec/mongo/operation/{write/insert_spec.rb → insert_spec.rb} +2 -2
- data/spec/mongo/operation/kill_cursors_spec.rb +2 -2
- data/spec/mongo/operation/limited_spec.rb +3 -3
- data/spec/mongo/operation/{commands/map_reduce_spec.rb → map_reduce_spec.rb} +1 -1
- data/spec/mongo/operation/read_preference_spec.rb +2 -2
- data/spec/mongo/operation/{write/command/remove_user_spec.rb → remove_user_spec.rb} +1 -1
- data/spec/mongo/operation/{write/bulk/update_spec.rb → update/bulk_spec.rb} +8 -8
- data/spec/mongo/operation/update/command_spec.rb +114 -0
- data/spec/mongo/operation/{write/command/update_spec.rb → update/op_msg_spec.rb} +49 -40
- data/spec/mongo/operation/{write/update_spec.rb → update_spec.rb} +6 -6
- data/spec/mongo/operation/{write/command/update_user_spec.rb → update_user_spec.rb} +1 -1
- data/spec/mongo/server/connection_spec.rb +0 -22
- data/spec/mongo/server_selector_spec.rb +55 -0
- data/spec/mongo/server_spec.rb +0 -42
- data/spec/mongo/session/session_pool_spec.rb +1 -1
- data/spec/mongo/uri/srv_protocol_spec.rb +2 -2
- data/spec/mongo/uri_spec.rb +2 -2
- data/spec/support/gridfs_tests/delete.yml +4 -38
- data/spec/support/gridfs_tests/download.yml +12 -30
- data/spec/support/server_selection.rb +1 -1
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Nearest.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Nearest_multiple.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Nearest_non_matching.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/PossiblePrimary.yml +15 -0
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/PossiblePrimaryNearest.yml +15 -0
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Primary.yml +0 -3
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/PrimaryPreferred.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/PrimaryPreferred_non_matching.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Secondary.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/SecondaryPreferred.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/SecondaryPreferred_non_matching.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetNoPrimary/read/Secondary_non_matching.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/Nearest.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/Nearest_multiple.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/Nearest_non_matching.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/Primary.yml +0 -3
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/PrimaryPreferred.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/PrimaryPreferred_non_matching.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/Secondary.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/SecondaryPreferred.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/SecondaryPreferred_non_matching.yml +0 -1
- data/spec/support/server_selection/selection/ReplicaSetWithPrimary/read/Secondary_non_matching.yml +0 -1
- data/spec/support/server_selection/selection/Sharded/read/Nearest.yml +21 -0
- data/spec/support/server_selection/selection/Sharded/read/Primary.yml +19 -0
- data/spec/support/server_selection/selection/Sharded/read/PrimaryPreferred.yml +21 -0
- data/spec/support/server_selection/selection/Sharded/read/Secondary.yml +21 -0
- data/spec/support/server_selection/selection/Sharded/read/SecondaryPreferred.yml +0 -5
- data/spec/support/server_selection/selection/Single/read/SecondaryPreferred.yml +0 -1
- data/spec/support/server_selection/selection/Unknown/read/SecondaryPreferred.yml +0 -1
- data/spec/support/shared/session.rb +46 -5
- metadata +174 -116
- metadata.gz.sig +1 -2
- data/lib/mongo/operation/commands.rb +0 -31
- data/lib/mongo/operation/commands/aggregate.rb +0 -63
- data/lib/mongo/operation/commands/aggregate/result.rb +0 -89
- data/lib/mongo/operation/commands/collections_info.rb +0 -71
- data/lib/mongo/operation/commands/create.rb +0 -49
- data/lib/mongo/operation/commands/drop.rb +0 -49
- data/lib/mongo/operation/commands/drop_database.rb +0 -49
- data/lib/mongo/operation/commands/explain.rb +0 -27
- data/lib/mongo/operation/commands/explain/result.rb +0 -52
- data/lib/mongo/operation/commands/find/result.rb +0 -62
- data/lib/mongo/operation/commands/get_more.rb +0 -27
- data/lib/mongo/operation/commands/get_more/result.rb +0 -62
- data/lib/mongo/operation/commands/indexes.rb +0 -73
- data/lib/mongo/operation/commands/list_collections.rb +0 -48
- data/lib/mongo/operation/commands/list_collections/result.rb +0 -94
- data/lib/mongo/operation/commands/list_indexes.rb +0 -48
- data/lib/mongo/operation/commands/list_indexes/result.rb +0 -98
- data/lib/mongo/operation/commands/map_reduce.rb +0 -65
- data/lib/mongo/operation/commands/map_reduce/result.rb +0 -131
- data/lib/mongo/operation/commands/parallel_scan.rb +0 -54
- data/lib/mongo/operation/commands/parallel_scan/result.rb +0 -64
- data/lib/mongo/operation/commands/users_info.rb +0 -52
- data/lib/mongo/operation/read.rb +0 -16
- data/lib/mongo/operation/read/get_more.rb +0 -52
- data/lib/mongo/operation/read/query.rb +0 -55
- data/lib/mongo/operation/uses_command_op_msg.rb +0 -78
- data/lib/mongo/operation/write.rb +0 -22
- data/lib/mongo/operation/write/bulk.rb +0 -20
- data/lib/mongo/operation/write/bulk/bulkable.rb +0 -82
- data/lib/mongo/operation/write/bulk/delete.rb +0 -71
- data/lib/mongo/operation/write/bulk/delete/result.rb +0 -71
- data/lib/mongo/operation/write/bulk/insert.rb +0 -96
- data/lib/mongo/operation/write/bulk/insert/result.rb +0 -129
- data/lib/mongo/operation/write/bulk/legacy_mergable.rb +0 -87
- data/lib/mongo/operation/write/bulk/mergable.rb +0 -73
- data/lib/mongo/operation/write/bulk/update.rb +0 -81
- data/lib/mongo/operation/write/bulk/update/result.rb +0 -196
- data/lib/mongo/operation/write/command.rb +0 -23
- data/lib/mongo/operation/write/command/create_index.rb +0 -79
- data/lib/mongo/operation/write/command/create_user.rb +0 -61
- data/lib/mongo/operation/write/command/delete.rb +0 -79
- data/lib/mongo/operation/write/command/drop_index.rb +0 -80
- data/lib/mongo/operation/write/command/insert.rb +0 -69
- data/lib/mongo/operation/write/command/remove_user.rb +0 -60
- data/lib/mongo/operation/write/command/update.rb +0 -77
- data/lib/mongo/operation/write/command/update_user.rb +0 -61
- data/lib/mongo/operation/write/command/writable.rb +0 -70
- data/lib/mongo/operation/write/delete.rb +0 -75
- data/lib/mongo/operation/write/gle.rb +0 -49
- data/lib/mongo/operation/write/idable.rb +0 -63
- data/lib/mongo/operation/write/insert.rb +0 -74
- data/lib/mongo/operation/write/insert/result.rb +0 -62
- data/lib/mongo/operation/write/update.rb +0 -91
- data/lib/mongo/operation/write/write_command_enabled.rb +0 -77
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0246e6a64d501929f4951018f1a8d9ca820279c3
|
4
|
+
data.tar.gz: e417f701dd239a033bff8b40d15e37f8adf2718f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '07684a4b81cc5b65e3dff16e1ce48542d165558683c82987a2e21d305434f2b4849688f3f2dad855b7034bfbd9ecb04ff0ce7a5f8572beead07bc0d87db621b8'
|
7
|
+
data.tar.gz: db337b9d0dae7d8ffc41833a770a0a4edd80d847440b05ff6c5d99c66c677624baaae948187443b0ab43195dc9904772e8f6334940ae7a20786c03ed3b956dbf
|
checksums.yaml.gz.sig
CHANGED
@@ -1,2 +1,3 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
�F��Y��Լ����� �������4
|
2
|
+
�V7��#��#�|��N�~!G��Hw�5�S��Q#k8+��l��!S.̌�z�Ԙ=o5�;Gb���o����Z�y����;�dy�V�o��mn�"�����
|
3
|
+
K�;���K�K�i��Y��w�B��m�� !"�IM/i<�!�a_�5�K3UW$�x���_��$��7�e>��W��l w����k���Jk�ʤaB2��Vl
|
data.tar.gz.sig
CHANGED
Binary file
|
data/Rakefile
CHANGED
data/lib/mongo/auth/user/view.rb
CHANGED
@@ -44,7 +44,7 @@ module Mongo
|
|
44
44
|
def create(user_or_name, options = {})
|
45
45
|
user = generate(user_or_name, options)
|
46
46
|
client.send(:with_session, options) do |session|
|
47
|
-
Operation::
|
47
|
+
Operation::CreateUser.new(
|
48
48
|
user: user,
|
49
49
|
db_name: database.name,
|
50
50
|
session: session
|
@@ -79,7 +79,7 @@ module Mongo
|
|
79
79
|
# @since 2.0.0
|
80
80
|
def remove(name, options = {})
|
81
81
|
client.send(:with_session, options) do |session|
|
82
|
-
Operation::
|
82
|
+
Operation::RemoveUser.new(
|
83
83
|
user_name: name,
|
84
84
|
db_name: database.name,
|
85
85
|
session: session
|
@@ -103,7 +103,7 @@ module Mongo
|
|
103
103
|
def update(user_or_name, options = {})
|
104
104
|
client.send(:with_session, options) do |session|
|
105
105
|
user = generate(user_or_name, options)
|
106
|
-
Operation::
|
106
|
+
Operation::UpdateUser.new(
|
107
107
|
user: user,
|
108
108
|
db_name: database.name,
|
109
109
|
session: session
|
@@ -132,7 +132,7 @@ module Mongo
|
|
132
132
|
|
133
133
|
def user_query(name, options = {})
|
134
134
|
client.send(:with_session, options) do |session|
|
135
|
-
Operation::
|
135
|
+
Operation::UsersInfo.new(
|
136
136
|
user_name: name,
|
137
137
|
db_name: database.name,
|
138
138
|
session: session
|
data/lib/mongo/bulk_write.rb
CHANGED
@@ -61,7 +61,7 @@ module Mongo
|
|
61
61
|
write_with_retry(session, write_concern) do |server, txn_num|
|
62
62
|
execute_operation(
|
63
63
|
operation.keys.first,
|
64
|
-
operation.values.
|
64
|
+
operation.values.flatten,
|
65
65
|
server,
|
66
66
|
operation_id,
|
67
67
|
result_combiner,
|
@@ -72,7 +72,7 @@ module Mongo
|
|
72
72
|
legacy_write_with_retry do |server|
|
73
73
|
execute_operation(
|
74
74
|
operation.keys.first,
|
75
|
-
operation.values.
|
75
|
+
operation.values.flatten,
|
76
76
|
server,
|
77
77
|
operation_id,
|
78
78
|
result_combiner,
|
@@ -175,7 +175,8 @@ module Mongo
|
|
175
175
|
if values.size > server.max_write_batch_size
|
176
176
|
split_execute(name, values, server, operation_id, combiner, session, txn_num)
|
177
177
|
else
|
178
|
-
|
178
|
+
result = send(name, values, server, operation_id, session, txn_num)
|
179
|
+
combiner.combine!(result, values.size)
|
179
180
|
end
|
180
181
|
rescue Error::MaxBSONSize, Error::MaxMessageSize => e
|
181
182
|
raise e if values.size <= 1
|
@@ -195,35 +196,29 @@ module Mongo
|
|
195
196
|
end
|
196
197
|
|
197
198
|
def delete_one(documents, server, operation_id, session, txn_num)
|
198
|
-
|
199
|
-
|
200
|
-
).execute(server)
|
199
|
+
spec = base_spec(operation_id, session).merge(:deletes => documents, :txn_num => txn_num)
|
200
|
+
Operation::Delete.new(spec).bulk_execute(server)
|
201
201
|
end
|
202
202
|
|
203
203
|
def delete_many(documents, server, operation_id, session, txn_num)
|
204
|
-
|
205
|
-
|
206
|
-
).execute(server)
|
204
|
+
spec = base_spec(operation_id, session).merge(:deletes => documents)
|
205
|
+
Operation::Delete.new(spec).bulk_execute(server)
|
207
206
|
end
|
208
207
|
|
209
|
-
|
210
208
|
def insert_one(documents, server, operation_id, session, txn_num)
|
211
|
-
|
212
|
-
|
213
|
-
).execute(server)
|
209
|
+
spec = base_spec(operation_id, session).merge(:documents => documents, :txn_num => txn_num)
|
210
|
+
Operation::Insert.new(spec).bulk_execute(server)
|
214
211
|
end
|
215
212
|
|
216
213
|
def update_one(documents, server, operation_id, session, txn_num)
|
217
|
-
|
218
|
-
|
219
|
-
).execute(server)
|
214
|
+
spec = base_spec(operation_id, session).merge(:updates => documents, :txn_num => txn_num)
|
215
|
+
Operation::Update.new(spec).bulk_execute(server)
|
220
216
|
end
|
221
217
|
alias :replace_one :update_one
|
222
218
|
|
223
219
|
def update_many(documents, server, operation_id, session, txn_num)
|
224
|
-
|
225
|
-
|
226
|
-
).execute(server)
|
220
|
+
spec = base_spec(operation_id, session).merge(:updates => documents)
|
221
|
+
Operation::Update.new(spec).bulk_execute(server)
|
227
222
|
end
|
228
223
|
end
|
229
224
|
end
|
data/lib/mongo/cluster.rb
CHANGED
@@ -244,14 +244,16 @@ module Mongo
|
|
244
244
|
# @example Get the next primary server.
|
245
245
|
# cluster.next_primary
|
246
246
|
#
|
247
|
-
# @param [ true, false ] ping Whether to ping the server before selection.
|
247
|
+
# @param [ true, false ] ping Whether to ping the server before selection. Deprecated,
|
248
|
+
# not necessary with the implementation of the Server Selection specification.
|
249
|
+
#
|
248
250
|
#
|
249
251
|
# @return [ Mongo::Server ] A primary server.
|
250
252
|
#
|
251
253
|
# @since 2.0.0
|
252
254
|
def next_primary(ping = true)
|
253
255
|
@primary_selector ||= ServerSelector.get(ServerSelector::PRIMARY)
|
254
|
-
@primary_selector.select_server(self
|
256
|
+
@primary_selector.select_server(self)
|
255
257
|
end
|
256
258
|
|
257
259
|
# Elect a primary server from the description that has just changed to a
|
@@ -52,7 +52,7 @@ module Mongo
|
|
52
52
|
#
|
53
53
|
# @since 2.4.0
|
54
54
|
def initialize(cluster)
|
55
|
-
@app_name = cluster.options[:app_name]
|
55
|
+
@app_name = cluster.options[:app_name].to_s if cluster.options[:app_name]
|
56
56
|
@platform = cluster.options[:platform]
|
57
57
|
@compressors = cluster.options[:compressors] || []
|
58
58
|
end
|
@@ -124,7 +124,7 @@ module Mongo
|
|
124
124
|
if server.features.find_command_enabled?
|
125
125
|
Cursor::Builder::KillCursorsCommand.update_cursors(op_spec, active_cursors_copy.to_a)
|
126
126
|
if Cursor::Builder::KillCursorsCommand.get_cursors_list(op_spec).size > 0
|
127
|
-
Operation::
|
127
|
+
Operation::KillCursors.new(op_spec).execute(server)
|
128
128
|
end
|
129
129
|
else
|
130
130
|
Cursor::Builder::OpKillCursors.update_cursors(op_spec, active_cursors_copy.to_a)
|
data/lib/mongo/collection.rb
CHANGED
@@ -189,12 +189,12 @@ module Mongo
|
|
189
189
|
raise Error::UnsupportedCollation.new
|
190
190
|
end
|
191
191
|
client.send(:with_session, opts) do |session|
|
192
|
-
Operation::
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
192
|
+
Operation::Create.new({
|
193
|
+
selector: operation,
|
194
|
+
db_name: database.name,
|
195
|
+
write_concern: write_concern,
|
196
|
+
session: session
|
197
|
+
}).execute(server)
|
198
198
|
end
|
199
199
|
end
|
200
200
|
|
@@ -215,12 +215,12 @@ module Mongo
|
|
215
215
|
# @since 2.0.0
|
216
216
|
def drop(opts = {})
|
217
217
|
client.send(:with_session, opts) do |session|
|
218
|
-
Operation::
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
218
|
+
Operation::Drop.new({
|
219
|
+
selector: { :drop => name },
|
220
|
+
db_name: database.name,
|
221
|
+
write_concern: write_concern,
|
222
|
+
session: session
|
223
|
+
}).execute(next_primary)
|
224
224
|
end
|
225
225
|
rescue Error::OperationFailure => ex
|
226
226
|
raise ex unless ex.message =~ /ns not found/
|
@@ -420,7 +420,7 @@ module Mongo
|
|
420
420
|
def insert_one(document, opts = {})
|
421
421
|
client.send(:with_session, opts) do |session|
|
422
422
|
write_with_retry(session, write_concern) do |server, txn_num|
|
423
|
-
Operation::
|
423
|
+
Operation::Insert.new(
|
424
424
|
:documents => [ document ],
|
425
425
|
:db_name => database.name,
|
426
426
|
:coll_name => name,
|
@@ -122,13 +122,14 @@ module Mongo
|
|
122
122
|
# @option options :limit [ Integer ] Max number of docs to return.
|
123
123
|
# @option options :max_scan [ Integer ] Constrain the query to only scan the
|
124
124
|
# specified number of docs. Use to prevent queries from running too long.
|
125
|
+
# Deprecated as of MongoDB server version 4.0.
|
125
126
|
# @option options :read [ Symbol ] The read preference to use for the query.
|
126
127
|
# If none is provided, the collection's default read preference is used.
|
127
128
|
# @option options :show_disk_loc [ true, false ] Return disk location info as
|
128
129
|
# a field in each doc.
|
129
130
|
# @option options :skip [ Integer ] The number of documents to skip.
|
130
131
|
# @option options :snapshot [ true, false ] Prevents returning a doc more than
|
131
|
-
# once.
|
132
|
+
# once. Deprecated as of MongoDB server version 4.0.
|
132
133
|
# @option options :sort [ Hash ] The key and direction pairs used to sort the
|
133
134
|
# results.
|
134
135
|
# @option options [ Hash ] :collation The collation to use.
|
@@ -153,7 +153,7 @@ module Mongo
|
|
153
153
|
|
154
154
|
def create_cursor!
|
155
155
|
session = client.send(:get_session, @options)
|
156
|
-
server = server_selector.select_server(cluster
|
156
|
+
server = server_selector.select_server(cluster)
|
157
157
|
result = send_initial_query(server, session)
|
158
158
|
@cursor = Cursor.new(view, result, server, disable_retry: true, session: session)
|
159
159
|
end
|
@@ -38,7 +38,7 @@ module Mongo
|
|
38
38
|
@cursor = nil
|
39
39
|
session = client.send(:get_session, @options)
|
40
40
|
read_with_retry do
|
41
|
-
server = server_selector.select_server(cluster
|
41
|
+
server = server_selector.select_server(cluster)
|
42
42
|
result = send_initial_query(server, session)
|
43
43
|
@cursor = Cursor.new(view, result, server, session: session)
|
44
44
|
end
|
@@ -65,15 +65,15 @@ module Mongo
|
|
65
65
|
if server.features.find_command_enabled?
|
66
66
|
initial_command_op(session)
|
67
67
|
else
|
68
|
-
Operation::
|
68
|
+
Operation::Find.new(Builder::OpQuery.new(self).specification)
|
69
69
|
end
|
70
70
|
end
|
71
71
|
|
72
72
|
def initial_command_op(session)
|
73
73
|
if explained?
|
74
|
-
Operation::
|
74
|
+
Operation::Explain.new(Builder::FindCommand.new(self, session).explain_specification)
|
75
75
|
else
|
76
|
-
Operation::
|
76
|
+
Operation::Find.new(Builder::FindCommand.new(self, session).specification)
|
77
77
|
end
|
78
78
|
end
|
79
79
|
|
@@ -217,7 +217,7 @@ module Mongo
|
|
217
217
|
end
|
218
218
|
|
219
219
|
def initial_query_op(session)
|
220
|
-
Operation::
|
220
|
+
Operation::MapReduce.new(map_reduce_spec(session))
|
221
221
|
end
|
222
222
|
|
223
223
|
def valid_server?(server)
|
@@ -247,9 +247,9 @@ module Mongo
|
|
247
247
|
|
248
248
|
def fetch_query_op(server, session)
|
249
249
|
if server.features.find_command_enabled?
|
250
|
-
Operation::
|
250
|
+
Operation::Find.new(find_command_spec(session))
|
251
251
|
else
|
252
|
-
Operation::
|
252
|
+
Operation::Find.new(fetch_query_spec)
|
253
253
|
end
|
254
254
|
end
|
255
255
|
|
@@ -136,16 +136,16 @@ module Mongo
|
|
136
136
|
read_pref = opts[:read] || read_preference
|
137
137
|
selector = ServerSelector.get(read_pref || server_selector)
|
138
138
|
read_with_retry do
|
139
|
-
server = selector.select_server(cluster
|
139
|
+
server = selector.select_server(cluster)
|
140
140
|
apply_collation!(cmd, server, opts)
|
141
141
|
with_session(opts) do |session|
|
142
|
-
Operation::
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
142
|
+
Operation::Count.new({
|
143
|
+
:selector => cmd,
|
144
|
+
:db_name => database.name,
|
145
|
+
:options => {:limit => -1},
|
146
|
+
:read => read_pref,
|
147
|
+
:session => session
|
148
|
+
}).execute(server)
|
149
149
|
end.n.to_i
|
150
150
|
end
|
151
151
|
end
|
@@ -176,16 +176,16 @@ module Mongo
|
|
176
176
|
read_pref = opts[:read] || read_preference
|
177
177
|
selector = ServerSelector.get(read_pref || server_selector)
|
178
178
|
read_with_retry do
|
179
|
-
server = selector.select_server(cluster
|
179
|
+
server = selector.select_server(cluster)
|
180
180
|
apply_collation!(cmd, server, opts)
|
181
181
|
with_session(opts) do |session|
|
182
|
-
Operation::
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
188
|
-
|
182
|
+
Operation::Distinct.new({
|
183
|
+
:selector => cmd,
|
184
|
+
:db_name => database.name,
|
185
|
+
:options => {:limit => -1},
|
186
|
+
:read => read_pref,
|
187
|
+
:session => session
|
188
|
+
}).execute(server)
|
189
189
|
end.first['values']
|
190
190
|
end
|
191
191
|
end
|
@@ -244,6 +244,9 @@ module Mongo
|
|
244
244
|
# @return [ Integer, View ] The value or a new +View+.
|
245
245
|
#
|
246
246
|
# @since 2.0.0
|
247
|
+
#
|
248
|
+
# @deprecated This option is deprecated as of MongoDB server
|
249
|
+
# version 4.0.
|
247
250
|
def max_scan(value = nil)
|
248
251
|
configure(:max_scan, value)
|
249
252
|
end
|
@@ -380,6 +383,9 @@ module Mongo
|
|
380
383
|
# @param [ true, false ] value The snapshot value.
|
381
384
|
#
|
382
385
|
# @since 2.0.0
|
386
|
+
#
|
387
|
+
# @deprecated This option is deprecated as of MongoDB server
|
388
|
+
# version 4.0.
|
383
389
|
def snapshot(value = nil)
|
384
390
|
configure(:snapshot, value)
|
385
391
|
end
|
@@ -473,8 +479,8 @@ module Mongo
|
|
473
479
|
|
474
480
|
def parallel_scan(cursor_count, options = {})
|
475
481
|
session = client.send(:get_session, @options)
|
476
|
-
server = server_selector.select_server(cluster
|
477
|
-
cmd = Operation::
|
482
|
+
server = server_selector.select_server(cluster)
|
483
|
+
cmd = Operation::ParallelScan.new({
|
478
484
|
:coll_name => collection.name,
|
479
485
|
:db_name => database.name,
|
480
486
|
:cursor_count => cursor_count,
|
@@ -483,14 +489,14 @@ module Mongo
|
|
483
489
|
}.merge!(options))
|
484
490
|
cmd.execute(server).cursor_ids.map do |cursor_id|
|
485
491
|
result = if server.features.find_command_enabled?
|
486
|
-
Operation::
|
492
|
+
Operation::GetMore.new({
|
487
493
|
:selector => {:getMore => cursor_id,
|
488
494
|
:collection => collection.name},
|
489
495
|
:db_name => database.name,
|
490
496
|
:session => session
|
491
497
|
}).execute(server)
|
492
498
|
else
|
493
|
-
Operation::
|
499
|
+
Operation::GetMore.new({
|
494
500
|
:to_return => 0,
|
495
501
|
:cursor_id => cursor_id,
|
496
502
|
:db_name => database.name,
|
@@ -49,7 +49,7 @@ module Mongo
|
|
49
49
|
with_session(opts) do |session|
|
50
50
|
write_with_retry(session, write_concern) do |server, txn_num|
|
51
51
|
apply_collation!(cmd, server, opts)
|
52
|
-
Operation::
|
52
|
+
Operation::Command.new(
|
53
53
|
:selector => cmd,
|
54
54
|
:db_name => database.name,
|
55
55
|
:session => session,
|
@@ -121,7 +121,7 @@ module Mongo
|
|
121
121
|
write_with_retry(session, write_concern) do |server, txn_num|
|
122
122
|
apply_collation!(cmd, server, opts)
|
123
123
|
apply_array_filters!(cmd, server, opts)
|
124
|
-
Operation::
|
124
|
+
Operation::Command.new(
|
125
125
|
:selector => cmd,
|
126
126
|
:db_name => database.name,
|
127
127
|
:session => session,
|
@@ -149,8 +149,8 @@ module Mongo
|
|
149
149
|
with_session(opts) do |session|
|
150
150
|
legacy_write_with_retry do |server|
|
151
151
|
apply_collation!(delete_doc, server, opts)
|
152
|
-
Operation::
|
153
|
-
:
|
152
|
+
Operation::Delete.new(
|
153
|
+
:deletes => [ delete_doc ],
|
154
154
|
:db_name => collection.database.name,
|
155
155
|
:coll_name => collection.name,
|
156
156
|
:write_concern => collection.write_concern,
|
@@ -178,8 +178,8 @@ module Mongo
|
|
178
178
|
with_session(opts) do |session|
|
179
179
|
write_with_retry(session, write_concern) do |server, txn_num|
|
180
180
|
apply_collation!(delete_doc, server, opts)
|
181
|
-
Operation::
|
182
|
-
:
|
181
|
+
Operation::Delete.new(
|
182
|
+
:deletes => [ delete_doc ],
|
183
183
|
:db_name => collection.database.name,
|
184
184
|
:coll_name => collection.name,
|
185
185
|
:write_concern => write_concern,
|
@@ -217,8 +217,8 @@ module Mongo
|
|
217
217
|
apply_collation!(update_doc, server, opts)
|
218
218
|
apply_array_filters!(update_doc, server, opts)
|
219
219
|
|
220
|
-
Operation::
|
221
|
-
:
|
220
|
+
Operation::Update.new(
|
221
|
+
:updates => [ update_doc ],
|
222
222
|
:db_name => collection.database.name,
|
223
223
|
:coll_name => collection.name,
|
224
224
|
:write_concern => write_concern,
|
@@ -256,8 +256,8 @@ module Mongo
|
|
256
256
|
legacy_write_with_retry do |server|
|
257
257
|
apply_collation!(update_doc, server, opts)
|
258
258
|
apply_array_filters!(update_doc, server, opts)
|
259
|
-
Operation::
|
260
|
-
:
|
259
|
+
Operation::Update.new(
|
260
|
+
:updates => [ update_doc ],
|
261
261
|
:db_name => collection.database.name,
|
262
262
|
:coll_name => collection.name,
|
263
263
|
:write_concern => collection.write_concern,
|
@@ -296,8 +296,8 @@ module Mongo
|
|
296
296
|
apply_collation!(update_doc, server, opts)
|
297
297
|
apply_array_filters!(update_doc, server, opts)
|
298
298
|
|
299
|
-
Operation::
|
300
|
-
:
|
299
|
+
Operation::Update.new(
|
300
|
+
:updates => [ update_doc ],
|
301
301
|
:db_name => collection.database.name,
|
302
302
|
:coll_name => collection.name,
|
303
303
|
:write_concern => write_concern,
|