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
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2014-
|
1
|
+
# Copyright (C) 2014-2018 MongoDB, Inc.
|
2
2
|
#
|
3
3
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
# you may not use this file except in compliance with the License.
|
@@ -14,26 +14,27 @@
|
|
14
14
|
|
15
15
|
module Mongo
|
16
16
|
module Operation
|
17
|
-
|
18
|
-
class CollectionsInfo
|
17
|
+
class UsersInfo
|
19
18
|
|
20
|
-
|
21
|
-
|
19
|
+
# Defines custom behaviour of results when using the
|
20
|
+
# usersInfo command.
|
21
|
+
#
|
22
|
+
# @since 2.1.0
|
23
|
+
class Result < Operation::Result
|
24
|
+
|
25
|
+
# The field name for the users document in a usersInfo result.
|
22
26
|
#
|
23
27
|
# @since 2.1.0
|
24
|
-
|
28
|
+
USERS = 'users'.freeze
|
29
|
+
|
30
|
+
def documents
|
31
|
+
reply.documents.first[USERS]
|
32
|
+
end
|
33
|
+
|
34
|
+
private
|
25
35
|
|
26
|
-
|
27
|
-
|
28
|
-
# @example Get the namespace.
|
29
|
-
# result.namespace
|
30
|
-
#
|
31
|
-
# @return [ String ] The namespace.
|
32
|
-
#
|
33
|
-
# @since 2.1.0
|
34
|
-
def namespace
|
35
|
-
Database::NAMESPACES
|
36
|
-
end
|
36
|
+
def first_document
|
37
|
+
@first_document ||= reply.documents[0]
|
37
38
|
end
|
38
39
|
end
|
39
40
|
end
|
data/lib/mongo/server.rb
CHANGED
@@ -122,11 +122,9 @@ module Mongo
|
|
122
122
|
# @return [ true, false ] If the server is connectable.
|
123
123
|
#
|
124
124
|
# @since 2.1.0
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
end
|
129
|
-
end
|
125
|
+
#
|
126
|
+
# @deprecated No longer necessary with Server Selection specification.
|
127
|
+
def connectable?; end
|
130
128
|
|
131
129
|
# Disconnect the server from the connection.
|
132
130
|
#
|
@@ -52,9 +52,9 @@ module Mongo
|
|
52
52
|
# @return [ true, false ] If the connection is connectable.
|
53
53
|
#
|
54
54
|
# @since 2.1.0
|
55
|
-
|
56
|
-
|
57
|
-
end
|
55
|
+
#
|
56
|
+
# @deprecated No longer necessary with Server Selection specification.
|
57
|
+
def connectable?; end
|
58
58
|
|
59
59
|
# Determine if the connection is currently connected.
|
60
60
|
#
|
@@ -27,31 +27,43 @@ module Mongo
|
|
27
27
|
# The ping command.
|
28
28
|
#
|
29
29
|
# @since 2.1.0
|
30
|
+
#
|
31
|
+
# @deprecated No longer necessary with Server Selection specification.
|
30
32
|
PING = { :ping => 1 }.freeze
|
31
33
|
|
32
34
|
# The ping command for an OP_MSG (server versions >= 3.6).
|
33
35
|
#
|
34
36
|
# @since 2.5.0
|
37
|
+
#
|
38
|
+
# @deprecated No longer necessary with Server Selection specification.
|
35
39
|
PING_OP_MSG = { :ping => 1, '$db' => Database::ADMIN }.freeze
|
36
40
|
|
37
41
|
# Ping message.
|
38
42
|
#
|
39
43
|
# @since 2.1.0
|
44
|
+
#
|
45
|
+
# @deprecated No longer necessary with Server Selection specification.
|
40
46
|
PING_MESSAGE = Protocol::Query.new(Database::ADMIN, Database::COMMAND, PING, :limit => -1)
|
41
47
|
|
42
48
|
# Ping message as an OP_MSG (server versions >= 3.6).
|
43
49
|
#
|
44
50
|
# @since 2.5.0
|
51
|
+
#
|
52
|
+
# @deprecated No longer necessary with Server Selection specification.
|
45
53
|
PING_OP_MSG_MESSAGE = Protocol::Msg.new([:none], {}, PING_OP_MSG)
|
46
54
|
|
47
55
|
# The ping message as raw bytes.
|
48
56
|
#
|
49
57
|
# @since 2.1.0
|
58
|
+
#
|
59
|
+
# @deprecated No longer necessary with Server Selection specification.
|
50
60
|
PING_BYTES = PING_MESSAGE.serialize.to_s.freeze
|
51
61
|
|
52
62
|
# The ping OP_MSG message as raw bytes (server versions >= 3.6).
|
53
63
|
#
|
54
64
|
# @since 2.5.0
|
65
|
+
#
|
66
|
+
# @deprecated No longer necessary with Server Selection specification.
|
55
67
|
PING_OP_MSG_BYTES = PING_OP_MSG_MESSAGE.serialize.to_s.freeze
|
56
68
|
|
57
69
|
# The last time the connection was checked back into a pool.
|
@@ -173,6 +185,8 @@ module Mongo
|
|
173
185
|
# @return [ true, false ] If the server is accepting connections.
|
174
186
|
#
|
175
187
|
# @since 2.1.0
|
188
|
+
#
|
189
|
+
# @deprecated No longer necessary with Server Selection specification.
|
176
190
|
def ping
|
177
191
|
bytes = features.op_msg_enabled? ? PING_OP_MSG_BYTES : PING_BYTES
|
178
192
|
ensure_connected do |socket|
|
@@ -71,7 +71,7 @@ module Mongo
|
|
71
71
|
# @since 2.0.0
|
72
72
|
def get(preference = {})
|
73
73
|
return preference if PREFERENCES.values.include?(preference.class)
|
74
|
-
PREFERENCES.fetch(preference[:mode] || :primary).new(preference)
|
74
|
+
PREFERENCES.fetch((preference[:mode] || :primary).to_sym).new(preference)
|
75
75
|
end
|
76
76
|
end
|
77
77
|
end
|
@@ -94,7 +94,7 @@ module Mongo
|
|
94
94
|
# @return [ Mongo::Server ] A server matching the server preference.
|
95
95
|
#
|
96
96
|
# @since 2.0.0
|
97
|
-
def select_server(cluster, ping =
|
97
|
+
def select_server(cluster, ping = nil)
|
98
98
|
@local_threshold = cluster.options[:local_threshold] || LOCAL_THRESHOLD
|
99
99
|
@server_selection_timeout = cluster.options[:server_selection_timeout] || SERVER_SELECTION_TIMEOUT
|
100
100
|
deadline = Time.now + server_selection_timeout
|
@@ -102,17 +102,8 @@ module Mongo
|
|
102
102
|
servers = candidates(cluster)
|
103
103
|
if servers && !servers.compact.empty?
|
104
104
|
server = servers.first
|
105
|
-
|
106
|
-
|
107
|
-
if ping && !cluster.single?
|
108
|
-
if server.connectable?
|
109
|
-
server.check_driver_support!
|
110
|
-
return server
|
111
|
-
end
|
112
|
-
else
|
113
|
-
server.check_driver_support!
|
114
|
-
return server
|
115
|
-
end
|
105
|
+
server.check_driver_support!
|
106
|
+
return server
|
116
107
|
end
|
117
108
|
cluster.scan!
|
118
109
|
end
|
data/lib/mongo/session.rb
CHANGED
@@ -252,7 +252,19 @@ module Mongo
|
|
252
252
|
#
|
253
253
|
# @since 2.5.1
|
254
254
|
def implicit?
|
255
|
-
@
|
255
|
+
@implicit ||= !!(@options.key?(:implicit) && @options[:implicit] == true)
|
256
|
+
end
|
257
|
+
|
258
|
+
# Is this session an explicit one (i.e. user-created).
|
259
|
+
#
|
260
|
+
# @example Is the session explicit?
|
261
|
+
# session.explicit?
|
262
|
+
#
|
263
|
+
# @return [ true, false ] Whether this session is explicit.
|
264
|
+
#
|
265
|
+
# @since 2.5.2
|
266
|
+
def explicit?
|
267
|
+
@explicit ||= !implicit?
|
256
268
|
end
|
257
269
|
|
258
270
|
private
|
@@ -113,7 +113,7 @@ module Mongo
|
|
113
113
|
def end_sessions
|
114
114
|
while !@queue.empty?
|
115
115
|
server = ServerSelector.get(mode: :primary_preferred).select_server(@cluster)
|
116
|
-
Operation::
|
116
|
+
Operation::Command.new(
|
117
117
|
:selector => {endSessions: @queue.shift(10_000).collect { |s| s.session_id }},
|
118
118
|
:db_name => Database::ADMIN).execute(server)
|
119
119
|
end
|
data/lib/mongo/version.rb
CHANGED
data/spec/mongo/client_spec.rb
CHANGED
@@ -2,6 +2,10 @@ require 'spec_helper'
|
|
2
2
|
|
3
3
|
describe Mongo::Client do
|
4
4
|
|
5
|
+
after do
|
6
|
+
begin; client.close; rescue; end
|
7
|
+
end
|
8
|
+
|
5
9
|
describe '#==' do
|
6
10
|
|
7
11
|
let(:client) do
|
@@ -12,12 +16,12 @@ describe Mongo::Client do
|
|
12
16
|
)
|
13
17
|
end
|
14
18
|
|
15
|
-
after do
|
16
|
-
client.close
|
17
|
-
end
|
18
|
-
|
19
19
|
context 'when the other is a client' do
|
20
20
|
|
21
|
+
after do
|
22
|
+
other.close
|
23
|
+
end
|
24
|
+
|
21
25
|
context 'when the options and cluster are equal' do
|
22
26
|
|
23
27
|
let(:other) do
|
@@ -105,6 +109,10 @@ describe Mongo::Client do
|
|
105
109
|
|
106
110
|
context 'when the other is a client' do
|
107
111
|
|
112
|
+
after do
|
113
|
+
other.close
|
114
|
+
end
|
115
|
+
|
108
116
|
context 'when the options and cluster are equal' do
|
109
117
|
|
110
118
|
let(:other) do
|
@@ -228,10 +236,6 @@ describe Mongo::Client do
|
|
228
236
|
described_class.new([default_address.seed], authorized_client.options.merge(options))
|
229
237
|
end
|
230
238
|
|
231
|
-
after do
|
232
|
-
client.close
|
233
|
-
end
|
234
|
-
|
235
239
|
it 'sets the option' do
|
236
240
|
expect(client.options['retry_writes']).to eq(options[:retry_writes])
|
237
241
|
end
|
@@ -243,10 +247,6 @@ describe Mongo::Client do
|
|
243
247
|
described_class.new([default_address.seed], authorized_client.options.merge(options))
|
244
248
|
end
|
245
249
|
|
246
|
-
after do
|
247
|
-
client.close
|
248
|
-
end
|
249
|
-
|
250
250
|
context 'when the compressor is supported' do
|
251
251
|
|
252
252
|
let(:options) do
|
@@ -456,10 +456,6 @@ describe Mongo::Client do
|
|
456
456
|
authorized_client.with(logger: logger)
|
457
457
|
end
|
458
458
|
|
459
|
-
after do
|
460
|
-
client.close
|
461
|
-
end
|
462
|
-
|
463
459
|
it 'does not use the global logger' do
|
464
460
|
expect(client.cluster.logger).to_not eq(Mongo::Logger.logger)
|
465
461
|
end
|
@@ -1123,7 +1119,7 @@ describe Mongo::Client do
|
|
1123
1119
|
end
|
1124
1120
|
|
1125
1121
|
let(:new_options) do
|
1126
|
-
{ app_name: '
|
1122
|
+
{ app_name: 'client_test' }
|
1127
1123
|
end
|
1128
1124
|
|
1129
1125
|
let!(:new_client) do
|
@@ -1373,10 +1369,6 @@ describe Mongo::Client do
|
|
1373
1369
|
client.list_databases({}, true)
|
1374
1370
|
end
|
1375
1371
|
|
1376
|
-
after do
|
1377
|
-
client.close
|
1378
|
-
end
|
1379
|
-
|
1380
1372
|
it 'sends the command with the nameOnly flag set to true' do
|
1381
1373
|
expect(command[:nameOnly]).to be(true)
|
1382
1374
|
end
|
@@ -1429,7 +1421,8 @@ describe Mongo::Client do
|
|
1429
1421
|
end
|
1430
1422
|
|
1431
1423
|
before do
|
1432
|
-
|
1424
|
+
# note that disconnect! is called also in the after block
|
1425
|
+
expect(client.cluster).to receive(:disconnect!).twice.and_call_original
|
1433
1426
|
end
|
1434
1427
|
|
1435
1428
|
it 'disconnects the cluster and returns true' do
|
@@ -14,18 +14,34 @@ describe Mongo::Cluster::AppMetadata do
|
|
14
14
|
|
15
15
|
context 'when the cluster has an app name option set' do
|
16
16
|
|
17
|
+
let(:client) do
|
18
|
+
authorized_client.with(app_name: :app_metadata_test)
|
19
|
+
end
|
20
|
+
|
17
21
|
let(:cluster) do
|
18
|
-
|
22
|
+
client.cluster
|
23
|
+
end
|
24
|
+
|
25
|
+
after do
|
26
|
+
client.close
|
19
27
|
end
|
20
28
|
|
21
29
|
it 'sets the app name' do
|
22
|
-
expect(app_metadata.send(:full_client_document)[:application][:name]).to eq(
|
30
|
+
expect(app_metadata.send(:full_client_document)[:application][:name]).to eq('app_metadata_test')
|
23
31
|
end
|
24
32
|
|
25
33
|
context 'when the app name exceeds the max length of 128' do
|
26
34
|
|
35
|
+
let(:client) do
|
36
|
+
authorized_client.with(app_name: "\u3042"*43)
|
37
|
+
end
|
38
|
+
|
27
39
|
let(:cluster) do
|
28
|
-
|
40
|
+
client.cluster
|
41
|
+
end
|
42
|
+
|
43
|
+
after do
|
44
|
+
client.close
|
29
45
|
end
|
30
46
|
|
31
47
|
it 'raises an error' do
|
@@ -143,4 +143,41 @@ describe Mongo::Cluster::CursorReaper do
|
|
143
143
|
end
|
144
144
|
end
|
145
145
|
end
|
146
|
+
|
147
|
+
context 'when a non-exhausted cursor goes out of scope' do
|
148
|
+
|
149
|
+
let(:docs) do
|
150
|
+
103.times.collect { |i| { a: i } }
|
151
|
+
end
|
152
|
+
|
153
|
+
let(:periodic_executor) do
|
154
|
+
cluster.instance_variable_get(:@periodic_executor)
|
155
|
+
end
|
156
|
+
|
157
|
+
let(:cluster) do
|
158
|
+
authorized_client.cluster
|
159
|
+
end
|
160
|
+
|
161
|
+
let(:cursor) do
|
162
|
+
view = authorized_collection.find
|
163
|
+
view.to_enum.next
|
164
|
+
cursor = view.instance_variable_get(:@cursor)
|
165
|
+
end
|
166
|
+
|
167
|
+
around do |example|
|
168
|
+
authorized_collection.insert_many(docs)
|
169
|
+
periodic_executor.stop!
|
170
|
+
cluster.schedule_kill_cursor(cursor.id, cursor.send(:kill_cursors_op_spec),
|
171
|
+
cursor.instance_variable_get(:@server))
|
172
|
+
periodic_executor.flush
|
173
|
+
example.run
|
174
|
+
periodic_executor.run!
|
175
|
+
end
|
176
|
+
|
177
|
+
it 'schedules the kill cursor op' do
|
178
|
+
expect {
|
179
|
+
cursor.to_a
|
180
|
+
}.to raise_exception(Mongo::Error::OperationFailure)
|
181
|
+
end
|
182
|
+
end
|
146
183
|
end
|
data/spec/mongo/cluster_spec.rb
CHANGED
@@ -491,11 +491,11 @@ describe Mongo::Cluster do
|
|
491
491
|
context 'when the client has an app_name set' do
|
492
492
|
|
493
493
|
let(:cluster) do
|
494
|
-
authorized_client.with(app_name: '
|
494
|
+
authorized_client.with(app_name: 'cluster_test').cluster
|
495
495
|
end
|
496
496
|
|
497
497
|
it 'constructs an AppMetadata object with the app_name' do
|
498
|
-
expect(cluster.app_metadata.send(:full_client_document)[:application]).to eq('name' => '
|
498
|
+
expect(cluster.app_metadata.send(:full_client_document)[:application]).to eq('name' => 'cluster_test')
|
499
499
|
end
|
500
500
|
end
|
501
501
|
|
@@ -567,7 +567,7 @@ describe Mongo::Collection::View::ChangeStream, if: test_change_streams? do
|
|
567
567
|
authorized_collection.insert_one(a: 2)
|
568
568
|
expect(cursor).to receive(:get_more).once.and_raise(error)
|
569
569
|
expect(cursor).to receive(:kill_cursors).and_call_original
|
570
|
-
expect(Mongo::Operation::
|
570
|
+
expect(Mongo::Operation::Aggregate).to receive(:new).and_call_original
|
571
571
|
end
|
572
572
|
|
573
573
|
let(:enum) do
|
@@ -649,7 +649,7 @@ describe Mongo::Collection::View::ChangeStream, if: test_change_streams? do
|
|
649
649
|
authorized_collection.insert_one(a: 2)
|
650
650
|
expect(cursor).to receive(:get_more).and_raise(Mongo::Error::OperationFailure)
|
651
651
|
expect(cursor).to receive(:kill_cursors).and_call_original
|
652
|
-
expect(Mongo::Operation::
|
652
|
+
expect(Mongo::Operation::Aggregate).not_to receive(:new)
|
653
653
|
end
|
654
654
|
|
655
655
|
let(:enum) do
|
@@ -1113,7 +1113,7 @@ describe Mongo::Collection do
|
|
1113
1113
|
it_behaves_like 'a failed operation using a session'
|
1114
1114
|
end
|
1115
1115
|
|
1116
|
-
context 'when unacknowledged writes is used' do
|
1116
|
+
context 'when unacknowledged writes is used with an explicit session' do
|
1117
1117
|
|
1118
1118
|
let(:collection_with_unacknowledged_write_concern) do
|
1119
1119
|
authorized_collection.with(write: { w: 0 })
|
@@ -1123,7 +1123,20 @@ describe Mongo::Collection do
|
|
1123
1123
|
collection_with_unacknowledged_write_concern.insert_many([{ name: 'test1' }, { name: 'test2' }], session: session)
|
1124
1124
|
end
|
1125
1125
|
|
1126
|
-
it_behaves_like '
|
1126
|
+
it_behaves_like 'an explicit session with an unacknowledged write'
|
1127
|
+
end
|
1128
|
+
|
1129
|
+
context 'when unacknowledged writes is used with an implicit session' do
|
1130
|
+
|
1131
|
+
let(:collection_with_unacknowledged_write_concern) do
|
1132
|
+
subscribed_client.with(write: { w: 0 })[TEST_COLL]
|
1133
|
+
end
|
1134
|
+
|
1135
|
+
let(:operation) do
|
1136
|
+
collection_with_unacknowledged_write_concern.insert_many([{ name: 'test1' }, { name: 'test2' }])
|
1137
|
+
end
|
1138
|
+
|
1139
|
+
it_behaves_like 'an implicit session with an unacknowledged write'
|
1127
1140
|
end
|
1128
1141
|
|
1129
1142
|
context 'when a document contains invalid keys' do
|
@@ -1345,7 +1358,7 @@ describe Mongo::Collection do
|
|
1345
1358
|
it_behaves_like 'a failed operation using a session'
|
1346
1359
|
end
|
1347
1360
|
|
1348
|
-
context 'when unacknowledged writes is used' do
|
1361
|
+
context 'when unacknowledged writes is used with an explicit session' do
|
1349
1362
|
|
1350
1363
|
let(:collection_with_unacknowledged_write_concern) do
|
1351
1364
|
authorized_collection.with(write: { w: 0 })
|
@@ -1355,7 +1368,20 @@ describe Mongo::Collection do
|
|
1355
1368
|
collection_with_unacknowledged_write_concern.insert_one({ name: 'testing' }, session: session)
|
1356
1369
|
end
|
1357
1370
|
|
1358
|
-
it_behaves_like '
|
1371
|
+
it_behaves_like 'an explicit session with an unacknowledged write'
|
1372
|
+
end
|
1373
|
+
|
1374
|
+
context 'when unacknowledged writes is used with an implicit session' do
|
1375
|
+
|
1376
|
+
let(:collection_with_unacknowledged_write_concern) do
|
1377
|
+
subscribed_client.with(write: { w: 0 })[TEST_COLL]
|
1378
|
+
end
|
1379
|
+
|
1380
|
+
let(:operation) do
|
1381
|
+
collection_with_unacknowledged_write_concern.insert_one({ name: 'testing' })
|
1382
|
+
end
|
1383
|
+
|
1384
|
+
it_behaves_like 'an implicit session with an unacknowledged write'
|
1359
1385
|
end
|
1360
1386
|
|
1361
1387
|
context 'when the document contains invalid keys' do
|
@@ -1993,7 +2019,20 @@ describe Mongo::Collection do
|
|
1993
2019
|
collection_with_unacknowledged_write_concern.delete_one({}, session: session)
|
1994
2020
|
end
|
1995
2021
|
|
1996
|
-
it_behaves_like '
|
2022
|
+
it_behaves_like 'an explicit session with an unacknowledged write'
|
2023
|
+
end
|
2024
|
+
|
2025
|
+
context 'when unacknowledged writes is used with an implicit session' do
|
2026
|
+
|
2027
|
+
let(:collection_with_unacknowledged_write_concern) do
|
2028
|
+
subscribed_client.with(write: { w: 0 })[TEST_COLL]
|
2029
|
+
end
|
2030
|
+
|
2031
|
+
let(:operation) do
|
2032
|
+
collection_with_unacknowledged_write_concern.delete_one
|
2033
|
+
end
|
2034
|
+
|
2035
|
+
it_behaves_like 'an implicit session with an unacknowledged write'
|
1997
2036
|
end
|
1998
2037
|
|
1999
2038
|
context 'when a collation is provided' do
|
@@ -2155,7 +2194,7 @@ describe Mongo::Collection do
|
|
2155
2194
|
it_behaves_like 'a failed operation using a session'
|
2156
2195
|
end
|
2157
2196
|
|
2158
|
-
context 'when unacknowledged writes is used' do
|
2197
|
+
context 'when unacknowledged writes is used with an explicit session' do
|
2159
2198
|
|
2160
2199
|
let(:collection_with_unacknowledged_write_concern) do
|
2161
2200
|
authorized_collection.with(write: { w: 0 })
|
@@ -2165,7 +2204,20 @@ describe Mongo::Collection do
|
|
2165
2204
|
collection_with_unacknowledged_write_concern.delete_many({ '$._id' => 1}, session: session)
|
2166
2205
|
end
|
2167
2206
|
|
2168
|
-
it_behaves_like '
|
2207
|
+
it_behaves_like 'an explicit session with an unacknowledged write'
|
2208
|
+
end
|
2209
|
+
|
2210
|
+
context 'when unacknowledged writes is used with an implicit session' do
|
2211
|
+
|
2212
|
+
let(:collection_with_unacknowledged_write_concern) do
|
2213
|
+
subscribed_client.with(write: { w: 0 })[TEST_COLL]
|
2214
|
+
end
|
2215
|
+
|
2216
|
+
let(:operation) do
|
2217
|
+
collection_with_unacknowledged_write_concern.delete_many({ '$._id' => 1 })
|
2218
|
+
end
|
2219
|
+
|
2220
|
+
it_behaves_like 'an implicit session with an unacknowledged write'
|
2169
2221
|
end
|
2170
2222
|
|
2171
2223
|
context 'when a collation is specified' do
|
@@ -2714,7 +2766,7 @@ describe Mongo::Collection do
|
|
2714
2766
|
it_behaves_like 'a failed operation using a session'
|
2715
2767
|
end
|
2716
2768
|
|
2717
|
-
context 'when unacknowledged writes is used' do
|
2769
|
+
context 'when unacknowledged writes is used with an explicit session' do
|
2718
2770
|
|
2719
2771
|
let(:collection_with_unacknowledged_write_concern) do
|
2720
2772
|
authorized_collection.with(write: { w: 0 })
|
@@ -2724,7 +2776,20 @@ describe Mongo::Collection do
|
|
2724
2776
|
collection_with_unacknowledged_write_concern.replace_one({ a: 1 }, { x: 5 }, session: session)
|
2725
2777
|
end
|
2726
2778
|
|
2727
|
-
it_behaves_like '
|
2779
|
+
it_behaves_like 'an explicit session with an unacknowledged write'
|
2780
|
+
end
|
2781
|
+
|
2782
|
+
context 'when unacknowledged writes is used with an implicit session' do
|
2783
|
+
|
2784
|
+
let(:collection_with_unacknowledged_write_concern) do
|
2785
|
+
subscribed_client.with(write: { w: 0 })[TEST_COLL]
|
2786
|
+
end
|
2787
|
+
|
2788
|
+
let(:operation) do
|
2789
|
+
collection_with_unacknowledged_write_concern.replace_one({ a: 1 }, { x: 5 })
|
2790
|
+
end
|
2791
|
+
|
2792
|
+
it_behaves_like 'an implicit session with an unacknowledged write'
|
2728
2793
|
end
|
2729
2794
|
end
|
2730
2795
|
|
@@ -3118,7 +3183,7 @@ describe Mongo::Collection do
|
|
3118
3183
|
it_behaves_like 'a failed operation using a session'
|
3119
3184
|
end
|
3120
3185
|
|
3121
|
-
context 'when unacknowledged writes is used' do
|
3186
|
+
context 'when unacknowledged writes is used with an explicit session' do
|
3122
3187
|
|
3123
3188
|
let(:collection_with_unacknowledged_write_concern) do
|
3124
3189
|
authorized_collection.with(write: { w: 0 })
|
@@ -3128,7 +3193,20 @@ describe Mongo::Collection do
|
|
3128
3193
|
collection_with_unacknowledged_write_concern.update_many({a: 1}, { '$set' => {x: 1} }, session: session)
|
3129
3194
|
end
|
3130
3195
|
|
3131
|
-
it_behaves_like '
|
3196
|
+
it_behaves_like 'an explicit session with an unacknowledged write'
|
3197
|
+
end
|
3198
|
+
|
3199
|
+
context 'when unacknowledged writes is used with an implicit session' do
|
3200
|
+
|
3201
|
+
let(:collection_with_unacknowledged_write_concern) do
|
3202
|
+
subscribed_client.with(write: { w: 0 })[TEST_COLL]
|
3203
|
+
end
|
3204
|
+
|
3205
|
+
let(:operation) do
|
3206
|
+
collection_with_unacknowledged_write_concern.update_many({a: 1}, {'$set' => {x: 1}})
|
3207
|
+
end
|
3208
|
+
|
3209
|
+
it_behaves_like 'an implicit session with an unacknowledged write'
|
3132
3210
|
end
|
3133
3211
|
end
|
3134
3212
|
|
@@ -3525,17 +3603,30 @@ describe Mongo::Collection do
|
|
3525
3603
|
it_behaves_like 'a failed operation using a session'
|
3526
3604
|
end
|
3527
3605
|
|
3528
|
-
context 'when unacknowledged writes is used' do
|
3606
|
+
context 'when unacknowledged writes is used with an explicit session' do
|
3529
3607
|
|
3530
3608
|
let(:collection_with_unacknowledged_write_concern) do
|
3531
3609
|
authorized_collection.with(write: { w: 0 })
|
3532
3610
|
end
|
3533
3611
|
|
3534
3612
|
let(:operation) do
|
3535
|
-
collection_with_unacknowledged_write_concern.update_one({a: 1}, { '$set' => {x: 1} }, session: session)
|
3613
|
+
collection_with_unacknowledged_write_concern.update_one({ a: 1 }, { '$set' => { x: 1 } }, session: session)
|
3614
|
+
end
|
3615
|
+
|
3616
|
+
it_behaves_like 'an explicit session with an unacknowledged write'
|
3617
|
+
end
|
3618
|
+
|
3619
|
+
context 'when unacknowledged writes is used with an implicit session' do
|
3620
|
+
|
3621
|
+
let(:collection_with_unacknowledged_write_concern) do
|
3622
|
+
subscribed_client.with(write: { w: 0 })[TEST_COLL]
|
3623
|
+
end
|
3624
|
+
|
3625
|
+
let(:operation) do
|
3626
|
+
collection_with_unacknowledged_write_concern.update_one({ a: 1 }, { '$set' => { x: 1 }})
|
3536
3627
|
end
|
3537
3628
|
|
3538
|
-
it_behaves_like '
|
3629
|
+
it_behaves_like 'an implicit session with an unacknowledged write'
|
3539
3630
|
end
|
3540
3631
|
end
|
3541
3632
|
|