mongo 2.16.3 → 2.17.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.
Files changed (101) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data/README.md +1 -1
  4. data/lib/mongo/auth/aws/request.rb +0 -1
  5. data/lib/mongo/client.rb +4 -0
  6. data/lib/mongo/cluster/reapers/cursor_reaper.rb +26 -14
  7. data/lib/mongo/collection/view/aggregation.rb +62 -17
  8. data/lib/mongo/collection/view/builder/aggregation.rb +11 -13
  9. data/lib/mongo/collection/view/builder/map_reduce.rb +1 -1
  10. data/lib/mongo/collection/view/change_stream.rb +7 -3
  11. data/lib/mongo/collection/view/iterable.rb +2 -3
  12. data/lib/mongo/collection/view/map_reduce.rb +2 -0
  13. data/lib/mongo/collection/view/readable.rb +24 -1
  14. data/lib/mongo/collection/view/writable.rb +23 -0
  15. data/lib/mongo/collection.rb +21 -1
  16. data/lib/mongo/cursor/kill_spec.rb +19 -2
  17. data/lib/mongo/cursor.rb +5 -5
  18. data/lib/mongo/database/view.rb +4 -2
  19. data/lib/mongo/database.rb +6 -6
  20. data/lib/mongo/error/snapshot_session_invalid_server_version.rb +31 -0
  21. data/lib/mongo/error/snapshot_session_transaction_prohibited.rb +30 -0
  22. data/lib/mongo/error.rb +2 -0
  23. data/lib/mongo/operation/delete/op_msg.rb +2 -1
  24. data/lib/mongo/operation/find/builder/command.rb +1 -0
  25. data/lib/mongo/operation/result.rb +6 -0
  26. data/lib/mongo/operation/shared/executable.rb +4 -0
  27. data/lib/mongo/operation/shared/sessions_supported.rb +18 -2
  28. data/lib/mongo/operation/update/op_msg.rb +2 -1
  29. data/lib/mongo/server/description/features.rb +3 -1
  30. data/lib/mongo/server_selector/base.rb +26 -4
  31. data/lib/mongo/session.rb +19 -0
  32. data/lib/mongo/socket/ocsp_cache.rb +2 -3
  33. data/lib/mongo/socket.rb +1 -5
  34. data/lib/mongo/utils.rb +0 -6
  35. data/lib/mongo/version.rb +1 -1
  36. data/mongo.gemspec +1 -1
  37. data/spec/integration/read_preference_spec.rb +16 -12
  38. data/spec/mongo/cluster/cursor_reaper_spec.rb +22 -15
  39. data/spec/mongo/collection/view/aggregation_spec.rb +71 -95
  40. data/spec/mongo/collection/view/change_stream_spec.rb +1 -1
  41. data/spec/mongo/collection/view/map_reduce_spec.rb +14 -1
  42. data/spec/mongo/cursor_spec.rb +3 -2
  43. data/spec/mongo/operation/read_preference_op_msg_spec.rb +24 -1
  44. data/spec/mongo/server_selector_spec.rb +136 -15
  45. data/spec/mongo/socket/ssl_spec.rb +26 -58
  46. data/spec/mongo/utils_spec.rb +0 -14
  47. data/spec/runners/crud/verifier.rb +1 -2
  48. data/spec/runners/unified/assertions.rb +3 -1
  49. data/spec/runners/unified/crud_operations.rb +77 -23
  50. data/spec/runners/unified/ddl_operations.rb +29 -1
  51. data/spec/runners/unified/entity_map.rb +3 -3
  52. data/spec/runners/unified/support_operations.rb +6 -1
  53. data/spec/runners/unified/test.rb +15 -3
  54. data/spec/spec_tests/data/crud_unified/aggregate-let.yml +138 -0
  55. data/spec/spec_tests/data/crud_unified/aggregate-write-readPreference.yml +155 -0
  56. data/spec/spec_tests/data/crud_unified/db-aggregate-write-readPreference.yml +151 -0
  57. data/spec/spec_tests/data/crud_unified/deleteMany-let.yml +91 -0
  58. data/spec/spec_tests/data/crud_unified/deleteOne-let.yml +89 -0
  59. data/spec/spec_tests/data/crud_unified/find-let.yml +71 -0
  60. data/spec/spec_tests/data/crud_unified/findOneAndDelete-let.yml +88 -0
  61. data/spec/spec_tests/data/crud_unified/findOneAndReplace-let.yml +94 -0
  62. data/spec/spec_tests/data/crud_unified/findOneAndUpdate-let.yml +96 -0
  63. data/spec/spec_tests/data/crud_unified/updateMany-let.yml +103 -0
  64. data/spec/spec_tests/data/crud_unified/updateOne-let.yml +98 -0
  65. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/DefaultNoMaxStaleness.yml +2 -2
  66. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/LastUpdateTime.yml +3 -3
  67. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest.yml +3 -3
  68. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Nearest2.yml +3 -3
  69. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred.yml +2 -2
  70. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/PrimaryPreferred_tags.yml +2 -2
  71. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/Secondary.yml +4 -4
  72. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred.yml +2 -2
  73. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/SecondaryPreferred_tags.yml +4 -4
  74. data/spec/spec_tests/data/max_staleness/ReplicaSetNoPrimary/ZeroMaxStaleness.yml +2 -2
  75. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/DefaultNoMaxStaleness.yml +2 -2
  76. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LastUpdateTime.yml +3 -3
  77. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat.yml +2 -2
  78. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/LongHeartbeat2.yml +2 -2
  79. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessTooSmall.yml +2 -2
  80. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/MaxStalenessWithModePrimary.yml +2 -2
  81. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest.yml +3 -3
  82. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest2.yml +3 -3
  83. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Nearest_tags.yml +2 -2
  84. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/PrimaryPreferred.yml +2 -2
  85. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred.yml +2 -2
  86. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags.yml +5 -5
  87. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/SecondaryPreferred_tags2.yml +3 -3
  88. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags.yml +5 -5
  89. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/Secondary_tags2.yml +3 -3
  90. data/spec/spec_tests/data/max_staleness/ReplicaSetWithPrimary/ZeroMaxStaleness.yml +2 -2
  91. data/spec/spec_tests/data/max_staleness/Sharded/SmallMaxStaleness.yml +2 -2
  92. data/spec/spec_tests/data/max_staleness/Single/SmallMaxStaleness.yml +1 -1
  93. data/spec/spec_tests/data/max_staleness/Unknown/SmallMaxStaleness.yml +1 -1
  94. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-client-error.yml +69 -0
  95. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-not-supported-server-error.yml +102 -0
  96. data/spec/spec_tests/data/sessions_unified/snapshot-sessions-unsupported-ops.yml +258 -0
  97. data/spec/spec_tests/data/sessions_unified/snapshot-sessions.yml +482 -0
  98. data/spec/spec_tests/sessions_unified_spec.rb +13 -0
  99. data.tar.gz.sig +0 -0
  100. metadata +36 -2
  101. metadata.gz.sig +0 -0
@@ -0,0 +1,103 @@
1
+ description: "updateMany-let"
2
+
3
+ schemaVersion: "1.0"
4
+
5
+ createEntities:
6
+ - client:
7
+ id: &client0 client0
8
+ observeEvents: [ commandStartedEvent ]
9
+ - database:
10
+ id: &database0 database0
11
+ client: *client0
12
+ databaseName: &database0Name crud-tests
13
+ - collection:
14
+ id: &collection0 collection0
15
+ database: *database0
16
+ collectionName: &collection0Name coll0
17
+
18
+ initialData: &initialData
19
+ - collectionName: *collection0Name
20
+ databaseName: *database0Name
21
+ documents:
22
+ - { _id: 1 }
23
+ - { _id: 2, name: "name" }
24
+ - { _id: 3, name: "name" }
25
+
26
+
27
+ tests:
28
+ - description: "updateMany with let option"
29
+ runOnRequirements:
30
+ - minServerVersion: "5.0"
31
+ operations:
32
+ - name: updateMany
33
+ object: *collection0
34
+ arguments:
35
+ filter: &filter
36
+ $expr:
37
+ $eq: [ "$name", "$$name" ]
38
+ update: &update
39
+ - $set: {x: "$$x", y: "$$y" }
40
+ let: &let0
41
+ name: name
42
+ x: foo
43
+ y: { $literal: "bar" }
44
+ expectResult:
45
+ matchedCount: 2
46
+ modifiedCount: 2
47
+ upsertedCount: 0
48
+ expectEvents:
49
+ - client: *client0
50
+ events:
51
+ - commandStartedEvent:
52
+ command:
53
+ update: *collection0Name
54
+ updates:
55
+ -
56
+ q: *filter
57
+ u: *update
58
+ let: *let0
59
+ outcome:
60
+ -
61
+ collectionName: *collection0Name
62
+ databaseName: *database0Name
63
+ documents:
64
+ - { _id: 1 }
65
+ - { _id: 2, name: "name", x: "foo", y: "bar" }
66
+ - { _id: 3, name: "name", x: "foo", y: "bar" }
67
+
68
+ - description: "updateMany with let option unsupported (server-side error)"
69
+ runOnRequirements:
70
+ - minServerVersion: "3.6.0"
71
+ maxServerVersion: "4.4.99"
72
+ operations:
73
+ - name: updateMany
74
+ object: *collection0
75
+ arguments:
76
+ filter: &filter1
77
+ _id: 1
78
+ update: &update1
79
+ - $set: {x: "$$x"}
80
+ let: &let1
81
+ x: foo
82
+ expectError:
83
+ errorContains: "'update.let' is an unknown field"
84
+ isClientError: false
85
+ expectEvents:
86
+ - client: *client0
87
+ events:
88
+ - commandStartedEvent:
89
+ command:
90
+ update: *collection0Name
91
+ updates:
92
+ -
93
+ q: *filter1
94
+ u: *update1
95
+ let: *let1
96
+ outcome:
97
+ -
98
+ collectionName: *collection0Name
99
+ databaseName: *database0Name
100
+ documents:
101
+ - { _id: 1 }
102
+ - { _id: 2, name: "name" }
103
+ - { _id: 3, name: "name" }
@@ -0,0 +1,98 @@
1
+ description: "updateOne-let"
2
+
3
+ schemaVersion: "1.0"
4
+
5
+ createEntities:
6
+ - client:
7
+ id: &client0 client0
8
+ observeEvents: [ commandStartedEvent ]
9
+ - database:
10
+ id: &database0 database0
11
+ client: *client0
12
+ databaseName: &database0Name crud-tests
13
+ - collection:
14
+ id: &collection0 collection0
15
+ database: *database0
16
+ collectionName: &collection0Name coll0
17
+
18
+ initialData: &initialData
19
+ - collectionName: *collection0Name
20
+ databaseName: *database0Name
21
+ documents:
22
+ - { _id: 1 }
23
+ - { _id: 2 }
24
+
25
+ tests:
26
+ - description: "UpdateOne with let option"
27
+ runOnRequirements:
28
+ - minServerVersion: "5.0"
29
+ operations:
30
+ - name: updateOne
31
+ object: *collection0
32
+ arguments:
33
+ filter: &filter
34
+ $expr:
35
+ $eq: [ "$_id", "$$id" ]
36
+ update: &update
37
+ - $set: {x: "$$x" }
38
+ let: &let0
39
+ id: 1
40
+ x: "foo"
41
+ expectResult:
42
+ matchedCount: 1
43
+ modifiedCount: 1
44
+ upsertedCount: 0
45
+ expectEvents:
46
+ - client: *client0
47
+ events:
48
+ - commandStartedEvent:
49
+ command:
50
+ update: *collection0Name
51
+ updates:
52
+ -
53
+ q: *filter
54
+ u: *update
55
+ let: *let0
56
+ outcome:
57
+ -
58
+ collectionName: *collection0Name
59
+ databaseName: *database0Name
60
+ documents:
61
+ - { _id: 1, x: "foo" }
62
+ - { _id: 2 }
63
+
64
+ - description: "UpdateOne with let option unsupported (server-side error)"
65
+ runOnRequirements:
66
+ - minServerVersion: "3.6.0"
67
+ maxServerVersion: "4.4.99"
68
+ operations:
69
+ - name: updateOne
70
+ object: *collection0
71
+ arguments:
72
+ filter: &filter1
73
+ _id: 1
74
+ update: &update1
75
+ - $set: {x: "$$x"}
76
+ let: &let1
77
+ x: foo
78
+ expectError:
79
+ errorContains: "'update.let' is an unknown field"
80
+ isClientError: false
81
+ expectEvents:
82
+ - client: *client0
83
+ events:
84
+ - commandStartedEvent:
85
+ command:
86
+ update: *collection0Name
87
+ updates:
88
+ -
89
+ q: *filter1
90
+ u: *update1
91
+ let: *let1
92
+ outcome:
93
+ -
94
+ collectionName: *collection0Name
95
+ databaseName: *database0Name
96
+ documents:
97
+ - { _id: 1 }
98
+ - { _id: 2 }
@@ -8,14 +8,14 @@ topology_description:
8
8
  type: RSSecondary
9
9
  avg_rtt_ms: 50 # Too far.
10
10
  lastUpdateTime: 0
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  lastWrite: {lastWriteDate: {$numberLong: "1000001"}}
13
13
  - &2
14
14
  address: b:27017
15
15
  type: RSSecondary
16
16
  avg_rtt_ms: 5
17
17
  lastUpdateTime: 0
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Very stale.
20
20
  read_preference:
21
21
  mode: Nearest
@@ -8,21 +8,21 @@ topology_description:
8
8
  avg_rtt_ms: 5
9
9
  lastUpdateTime: 1
10
10
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  - &2
13
13
  address: b:27017
14
14
  type: RSSecondary
15
15
  avg_rtt_ms: 50 # Too far.
16
16
  lastUpdateTime: 25002 # Not used when there's no primary.
17
17
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  - &3
20
20
  address: c:27017
21
21
  type: RSSecondary
22
22
  avg_rtt_ms: 5
23
23
  lastUpdateTime: 25001
24
24
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
25
- maxWireVersion: 5
25
+ maxWireVersion: 6
26
26
  read_preference:
27
27
  mode: Nearest
28
28
  maxStalenessSeconds: 150
@@ -8,21 +8,21 @@ topology_description:
8
8
  avg_rtt_ms: 5
9
9
  lastUpdateTime: 0
10
10
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  - &2
13
13
  address: b:27017
14
14
  type: RSSecondary
15
15
  avg_rtt_ms: 50 # Too far.
16
16
  lastUpdateTime: 0
17
17
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  - &3
20
20
  address: c:27017
21
21
  avg_rtt_ms: 5
22
22
  lastUpdateTime: 0
23
23
  type: RSSecondary
24
24
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
25
- maxWireVersion: 5
25
+ maxWireVersion: 6
26
26
  read_preference:
27
27
  mode: Nearest
28
28
  maxStalenessSeconds: 150
@@ -8,21 +8,21 @@ topology_description:
8
8
  avg_rtt_ms: 50 # Too far.
9
9
  lastUpdateTime: 0
10
10
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  - &2
13
13
  address: b:27017
14
14
  type: RSSecondary
15
15
  avg_rtt_ms: 5
16
16
  lastUpdateTime: 0
17
17
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  - &3
20
20
  address: c:27017
21
21
  avg_rtt_ms: 5
22
22
  lastUpdateTime: 0
23
23
  type: RSSecondary
24
24
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
25
- maxWireVersion: 5
25
+ maxWireVersion: 6
26
26
  read_preference:
27
27
  mode: Nearest
28
28
  maxStalenessSeconds: 150
@@ -9,14 +9,14 @@ topology_description:
9
9
  type: RSSecondary
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "1000001"}}
14
14
  - &2
15
15
  address: b:27017
16
16
  type: RSSecondary
17
17
  avg_rtt_ms: 5
18
18
  lastUpdateTime: 0
19
- maxWireVersion: 5
19
+ maxWireVersion: 6
20
20
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Very stale.
21
21
  read_preference:
22
22
  mode: PrimaryPreferred
@@ -12,7 +12,7 @@ topology_description:
12
12
  avg_rtt_ms: 5
13
13
  lastUpdateTime: 0
14
14
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
15
- maxWireVersion: 5
15
+ maxWireVersion: 6
16
16
  tags:
17
17
  data_center: tokyo # Matches second tag set.
18
18
  - &2
@@ -21,7 +21,7 @@ topology_description:
21
21
  avg_rtt_ms: 5
22
22
  lastUpdateTime: 0
23
23
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
24
- maxWireVersion: 5
24
+ maxWireVersion: 6
25
25
  tags:
26
26
  data_center: nyc
27
27
  read_preference:
@@ -9,7 +9,7 @@ topology_description:
9
9
  type: RSSecondary
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
14
14
  tags:
15
15
  data_center: tokyo # No match, but its lastWriteDate is used in estimate.
@@ -18,7 +18,7 @@ topology_description:
18
18
  type: RSSecondary
19
19
  avg_rtt_ms: 5
20
20
  lastUpdateTime: 0
21
- maxWireVersion: 5
21
+ maxWireVersion: 6
22
22
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
23
23
  tags:
24
24
  data_center: nyc
@@ -27,7 +27,7 @@ topology_description:
27
27
  type: RSSecondary
28
28
  avg_rtt_ms: 5
29
29
  lastUpdateTime: 0
30
- maxWireVersion: 5
30
+ maxWireVersion: 6
31
31
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
32
32
  tags:
33
33
  data_center: nyc
@@ -36,7 +36,7 @@ topology_description:
36
36
  type: RSSecondary
37
37
  avg_rtt_ms: 5
38
38
  lastUpdateTime: 0
39
- maxWireVersion: 5
39
+ maxWireVersion: 6
40
40
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
41
41
  tags:
42
42
  data_center: tokyo # No match.
@@ -8,14 +8,14 @@ topology_description:
8
8
  type: RSSecondary
9
9
  avg_rtt_ms: 5
10
10
  lastUpdateTime: 0
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  lastWrite: {lastWriteDate: {$numberLong: "1000001"}}
13
13
  - &2
14
14
  address: b:27017
15
15
  type: RSSecondary
16
16
  avg_rtt_ms: 5
17
17
  lastUpdateTime: 0
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Very stale.
20
20
  read_preference:
21
21
  mode: SecondaryPreferred
@@ -9,7 +9,7 @@ topology_description:
9
9
  type: RSSecondary
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
14
14
  tags:
15
15
  data_center: tokyo # No match, but its lastWriteDate is used in estimate.
@@ -18,7 +18,7 @@ topology_description:
18
18
  type: RSSecondary
19
19
  avg_rtt_ms: 5
20
20
  lastUpdateTime: 0
21
- maxWireVersion: 5
21
+ maxWireVersion: 6
22
22
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
23
23
  tags:
24
24
  data_center: nyc
@@ -27,7 +27,7 @@ topology_description:
27
27
  type: RSSecondary
28
28
  avg_rtt_ms: 5
29
29
  lastUpdateTime: 0
30
- maxWireVersion: 5
30
+ maxWireVersion: 6
31
31
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
32
32
  tags:
33
33
  data_center: nyc
@@ -36,7 +36,7 @@ topology_description:
36
36
  type: RSSecondary
37
37
  avg_rtt_ms: 5
38
38
  lastUpdateTime: 0
39
- maxWireVersion: 5
39
+ maxWireVersion: 6
40
40
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
41
41
  tags:
42
42
  data_center: tokyo # No match.
@@ -8,14 +8,14 @@ topology_description:
8
8
  type: RSSecondary
9
9
  avg_rtt_ms: 5
10
10
  lastUpdateTime: 0
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
13
13
  - &2
14
14
  address: b:27017
15
15
  type: RSSecondary
16
16
  avg_rtt_ms: 5
17
17
  lastUpdateTime: 0
18
- maxWireVersion: 4 # Incompatible.
18
+ maxWireVersion: 6
19
19
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
20
20
  read_preference:
21
21
  mode: Nearest
@@ -8,14 +8,14 @@ topology_description:
8
8
  type: RSPrimary
9
9
  avg_rtt_ms: 50 # Too far.
10
10
  lastUpdateTime: 0
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  lastWrite: {lastWriteDate: {$numberLong: "1000001"}}
13
13
  - &2
14
14
  address: b:27017
15
15
  type: RSSecondary
16
16
  avg_rtt_ms: 5
17
17
  lastUpdateTime: 0
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Very stale.
20
20
  read_preference:
21
21
  mode: Nearest
@@ -8,7 +8,7 @@ topology_description:
8
8
  avg_rtt_ms: 50 # Too far.
9
9
  lastUpdateTime: 1
10
10
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  - &2
13
13
  address: b:27017
14
14
  type: RSSecondary
@@ -17,14 +17,14 @@ topology_description:
17
17
  # Updated 125 sec after primary, so 125 sec stale.
18
18
  # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
19
19
  lastWrite: {lastWriteDate: {$numberLong: "2"}}
20
- maxWireVersion: 5
20
+ maxWireVersion: 6
21
21
  - &3
22
22
  address: c:27017
23
23
  type: RSSecondary
24
24
  avg_rtt_ms: 5
25
25
  lastUpdateTime: 125001
26
26
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
27
- maxWireVersion: 5
27
+ maxWireVersion: 6
28
28
  read_preference:
29
29
  mode: Nearest
30
30
  maxStalenessSeconds: 150
@@ -10,14 +10,14 @@ topology_description:
10
10
  type: RSPrimary
11
11
  avg_rtt_ms: 5
12
12
  lastUpdateTime: 0
13
- maxWireVersion: 5
13
+ maxWireVersion: 6
14
14
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
15
15
  - &2
16
16
  address: b:27017
17
17
  type: RSSecondary
18
18
  avg_rtt_ms: 50 # Too far.
19
19
  lastUpdateTime: 0
20
- maxWireVersion: 5
20
+ maxWireVersion: 6
21
21
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
22
22
  read_preference:
23
23
  mode: Nearest
@@ -10,14 +10,14 @@ topology_description:
10
10
  type: RSPrimary
11
11
  avg_rtt_ms: 5
12
12
  lastUpdateTime: 0
13
- maxWireVersion: 5
13
+ maxWireVersion: 6
14
14
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
15
15
  - &2
16
16
  address: b:27017
17
17
  type: RSSecondary
18
18
  avg_rtt_ms: 5
19
19
  lastUpdateTime: 0
20
- maxWireVersion: 5
20
+ maxWireVersion: 6
21
21
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
22
22
  read_preference:
23
23
  mode: Nearest
@@ -11,14 +11,14 @@ topology_description:
11
11
  type: RSPrimary
12
12
  avg_rtt_ms: 5
13
13
  lastUpdateTime: 0
14
- maxWireVersion: 5
14
+ maxWireVersion: 6
15
15
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
16
16
  - &2
17
17
  address: b:27017
18
18
  type: RSSecondary
19
19
  avg_rtt_ms: 5
20
20
  lastUpdateTime: 0
21
- maxWireVersion: 5
21
+ maxWireVersion: 6
22
22
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
23
23
  read_preference:
24
24
  mode: Nearest
@@ -9,14 +9,14 @@ topology_description:
9
9
  type: RSPrimary
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
14
14
  - &2
15
15
  address: b:27017
16
16
  type: RSSecondary
17
17
  avg_rtt_ms: 5
18
18
  lastUpdateTime: 0
19
- maxWireVersion: 5
19
+ maxWireVersion: 6
20
20
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
21
21
  read_preference:
22
22
  maxStalenessSeconds: 120
@@ -8,21 +8,21 @@ topology_description:
8
8
  avg_rtt_ms: 5
9
9
  lastUpdateTime: 0
10
10
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  - &2
13
13
  address: b:27017
14
14
  type: RSSecondary
15
15
  avg_rtt_ms: 50 # Too far.
16
16
  lastUpdateTime: 0
17
17
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  - &3
20
20
  address: c:27017
21
21
  avg_rtt_ms: 5
22
22
  lastUpdateTime: 0
23
23
  type: RSSecondary
24
24
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
25
- maxWireVersion: 5
25
+ maxWireVersion: 6
26
26
  read_preference:
27
27
  mode: Nearest
28
28
  maxStalenessSeconds: 150
@@ -8,21 +8,21 @@ topology_description:
8
8
  avg_rtt_ms: 50 # Too far.
9
9
  lastUpdateTime: 0
10
10
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  - &2
13
13
  address: b:27017
14
14
  type: RSSecondary
15
15
  avg_rtt_ms: 5
16
16
  lastUpdateTime: 0
17
17
  lastWrite: {lastWriteDate: {$numberLong: "2"}} # 125 sec stale + 25 sec heartbeat <= 150 sec maxStaleness.
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  - &3
20
20
  address: c:27017
21
21
  avg_rtt_ms: 5
22
22
  lastUpdateTime: 0
23
23
  type: RSSecondary
24
24
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
25
- maxWireVersion: 5
25
+ maxWireVersion: 6
26
26
  read_preference:
27
27
  mode: Nearest
28
28
  maxStalenessSeconds: 150
@@ -12,7 +12,7 @@ topology_description:
12
12
  avg_rtt_ms: 5
13
13
  lastUpdateTime: 0
14
14
  lastWrite: {lastWriteDate: {$numberLong: "125002"}}
15
- maxWireVersion: 5
15
+ maxWireVersion: 6
16
16
  tags:
17
17
  data_center: tokyo
18
18
  - &2
@@ -21,7 +21,7 @@ topology_description:
21
21
  avg_rtt_ms: 5
22
22
  lastUpdateTime: 0
23
23
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Too stale.
24
- maxWireVersion: 5
24
+ maxWireVersion: 6
25
25
  tags:
26
26
  data_center: nyc
27
27
  read_preference:
@@ -9,14 +9,14 @@ topology_description:
9
9
  type: RSPrimary
10
10
  avg_rtt_ms: 5
11
11
  lastUpdateTime: 0
12
- maxWireVersion: 5
12
+ maxWireVersion: 6
13
13
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
14
14
  - &2
15
15
  address: b:27017
16
16
  type: RSSecondary
17
17
  avg_rtt_ms: 5
18
18
  lastUpdateTime: 0
19
- maxWireVersion: 5
19
+ maxWireVersion: 6
20
20
  lastWrite: {lastWriteDate: {$numberLong: "1"}}
21
21
  read_preference:
22
22
  mode: PrimaryPreferred
@@ -8,14 +8,14 @@ topology_description:
8
8
  type: RSPrimary
9
9
  avg_rtt_ms: 5
10
10
  lastUpdateTime: 0
11
- maxWireVersion: 5
11
+ maxWireVersion: 6
12
12
  lastWrite: {lastWriteDate: {$numberLong: "1000001"}}
13
13
  - &2
14
14
  address: b:27017
15
15
  type: RSSecondary
16
16
  avg_rtt_ms: 5
17
17
  lastUpdateTime: 0
18
- maxWireVersion: 5
18
+ maxWireVersion: 6
19
19
  lastWrite: {lastWriteDate: {$numberLong: "1"}} # Very stale.
20
20
  read_preference:
21
21
  mode: SecondaryPreferred