mongo 2.5.1 → 2.5.2
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
- 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,
|