Merge branch 'master' of github.com:mongodb/mongo-python-driver

This commit is contained in:
Steven Silvester 2024-08-18 16:30:36 -05:00
commit cb14e33d30
No known key found for this signature in database
GPG Key ID: B1BF5EC3A8B32F91
124 changed files with 667 additions and 318 deletions

View File

@ -2031,6 +2031,17 @@ tasks:
- func: "attach benchmark test results"
- func: "send dashboard data"
- name: "perf-8.0-standalone"
tags: ["perf"]
commands:
- func: "bootstrap mongo-orchestration"
vars:
VERSION: "8.0"
TOPOLOGY: "server"
- func: "run perf tests"
- func: "attach benchmark test results"
- func: "send dashboard data"
- name: "assign-pr-reviewer"
tags: ["pr"]
allowed_requesters: ["patch", "github_pr"]
@ -3041,6 +3052,7 @@ buildvariants:
tasks:
- name: "perf-6.0-standalone"
- name: "perf-6.0-standalone-ssl"
- name: "perf-8.0-standalone"
# Platform notes
# i386 builds of OpenSSL or Cyrus SASL are not available

View File

@ -96,7 +96,7 @@ jobs:
- name: Start MongoDB
uses: supercharge/mongodb-github-action@1.10.0
with:
mongodb-version: 4.4
mongodb-version: '8.0.0-rc4'
- name: Run tests
run: |
hatch run doctest:test

View File

@ -35,5 +35,6 @@
.. automethod:: get_database
.. automethod:: server_info
.. automethod:: watch
.. automethod:: bulk_write
.. automethod:: __getitem__
.. automethod:: __getattr__

View File

@ -35,5 +35,6 @@
.. automethod:: get_database
.. automethod:: server_info
.. automethod:: watch
.. automethod:: bulk_write
.. automethod:: __getitem__
.. automethod:: __getattr__

View File

@ -16,7 +16,19 @@ PyMongo 4.9 brings a number of improvements including:
:class:`~pymongo.asynchronous.cursor.AsyncCursor`,
and :class:`~pymongo.asynchronous.command_cursor.AsyncCommandCursor`
as an asynchronous-friendly alternative to ``list(cursor)``.
- Added :meth:`~pymongo.mongo_client.MongoClient.bulk_write` to :class:`~pymongo.mongo_client.MongoClient`
and :class:`~pymongo.asynchronous.mongo_client.AsyncMongoClient`,
enabling users to perform insert, update, and delete operations
against mixed namespaces in a minimized number of round trips.
Please see :doc:`examples/client_bulk` for more information.
- Added support for the ``namespace`` parameter to the
:class:`~pymongo.operations.InsertOne`,
:class:`~pymongo.operations.ReplaceOne`,
:class:`~pymongo.operations.UpdateOne`,
:class:`~pymongo.operations.UpdateMany`,
:class:`~pymongo.operations.DeleteOne`, and
:class:`~pymongo.operations.DeleteMany` operations, so
they can be used in the new :meth:`~pymongo.mongo_client.MongoClient.bulk_write`.
Issues Resolved
...............

View File

@ -0,0 +1,188 @@
Client Bulk Write Operations
=============================
.. testsetup::
from pymongo import MongoClient
client = MongoClient()
client.drop_database("client_bulk_example")
db = client.client_bulk_example
client.db.drop_collection("test_one")
client.db.drop_collection("test_two")
client.db.drop_collection("test_three")
client.db.drop_collection("test_four")
client.db.drop_collection("test_five")
client.db.drop_collection("test_six")
The :meth:`~pymongo.mongo_client.MongoClient.bulk_write`
method has been added to :class:`~pymongo.mongo_client.MongoClient` in PyMongo 4.9.
This method enables users to perform batches of write operations **across
multiple namespaces** in a minimized number of round trips, and
to receive detailed results for each operation performed.
.. note:: This method requires MongoDB server version 8.0+.
Basic Usage
------------
A list of insert, update, and delete operations can be passed into the
:meth:`~pymongo.mongo_client.MongoClient.bulk_write` method. Each request
must include the namespace on which to perform the operation.
PyMongo will automatically split the given requests into smaller sub-batches based on
the maximum message size accepted by MongoDB, supporting very large bulk write operations.
The return value is an instance of
:class:`~pymongo.results.ClientBulkWriteResult`.
.. _summary_client_bulk:
Summary Results
.................
By default, the returned :class:`~pymongo.results.ClientBulkWriteResult` instance will contain a
summary of the types of operations performed in the bulk write, along with their respective counts.
.. doctest::
:options: +NORMALIZE_WHITESPACE
>>> from pymongo import InsertOne, DeleteOne, UpdateOne
>>> models = [
... InsertOne(namespace="db.test_one", document={"_id": 1}),
... InsertOne(namespace="db.test_two", document={"_id": 2}),
... DeleteOne(namespace="db.test_one", filter={"_id": 1}),
... UpdateOne(
... namespace="db.test_two",
... filter={"_id": 4},
... update={"$inc": {"j": 1}},
... upsert=True,
... ),
... ]
>>> result = client.bulk_write(models)
>>> result.inserted_count
2
>>> result.deleted_count
1
>>> result.modified_count
0
>>> result.upserted_count
1
.. _verbose_client_bulk:
Verbose Results
.................
If the ``verbose_results`` parameter is set to True, the returned :class:`~pymongo.results.ClientBulkWriteResult`
instance will also include detailed results about each successful operation performed as part of the bulk write.
.. doctest::
:options: +NORMALIZE_WHITESPACE
>>> from pymongo import InsertOne, DeleteMany, ReplaceOne, UpdateMany
>>> models = [
... DeleteMany(
... namespace="db.test_two", filter={}
... ), # Delete all documents from the previous example
... InsertOne(namespace="db.test_one", document={"_id": 1}),
... InsertOne(namespace="db.test_one", document={"_id": 2}),
... InsertOne(namespace="db.test_two", document={"_id": 3}),
... UpdateMany(namespace="db.test_one", filter={}, update={"$set": {"foo": "bar"}}),
... ReplaceOne(
... namespace="db.test_two", filter={"j": 1}, replacement={"_id": 4}, upsert=True
... ),
... ]
>>> result = client.bulk_write(models, verbose_results=True)
>>> result.delete_results
{0: DeleteResult({'ok': 1.0, 'idx': 0, 'n': 2}, ...)}
>>> result.insert_results
{1: InsertOneResult(1, ...),
2: InsertOneResult(2, ...),
3: InsertOneResult(3, ...)}
>>> result.update_results
{4: UpdateResult({'ok': 1.0, 'idx': 4, 'n': 2, 'nModified': 2}, ...),
5: UpdateResult({'ok': 1.0, 'idx': 5, 'n': 1, 'nModified': 0, 'upserted': {'_id': 4}}, ...)}
Handling Errors
----------------
If any errors occur during the bulk write, a :class:`~pymongo.errors.ClientBulkWriteException` will be raised.
If a server, connection, or network error occurred, the ``error`` field of the exception will contain
that error.
Individual write errors or write concern errors get recorded in the ``write_errors`` and ``write_concern_errors`` fields of the exception.
The ``partial_result`` field gets populated with the results of any operations that were successfully completed before the exception was raised.
.. _ordered_client_bulk:
Ordered Operations
....................
In an ordered bulk write (the default), if an individual write fails, no further operations will get executed.
For example, a duplicate key error on the third operation below aborts the remaining two operations.
.. doctest::
:options: +NORMALIZE_WHITESPACE
>>> from pymongo import InsertOne, DeleteOne
>>> from pymongo.errors import ClientBulkWriteException
>>> models = [
... InsertOne(namespace="db.test_three", document={"_id": 3}),
... InsertOne(namespace="db.test_four", document={"_id": 4}),
... InsertOne(namespace="db.test_three", document={"_id": 3}), # Duplicate _id
... InsertOne(namespace="db.test_four", document={"_id": 5}),
... DeleteOne(namespace="db.test_three", filter={"_id": 3}),
... ]
>>> try:
... client.bulk_write(models)
... except ClientBulkWriteException as cbwe:
... exception = cbwe
...
>>> exception.write_errors
[{'ok': 0.0,
'idx': 2,
'code': 11000,
'errmsg': 'E11000 duplicate key error ... dup key: { _id: 3 }', ...
'op': {'insert': 'db.test_three', 'document': {'_id': 3}}}]
>>> exception.partial_result.inserted_count
2
>>> exception.partial_result.deleted_count
0
.. _unordered_client_bulk:
Unordered Operations
.....................
If the ``ordered`` parameter is set to False, all operations in the bulk write will be attempted, regardless of any individual write errors that occur.
For example, the fourth and fifth write operations below get executed successfully, despite the duplicate key error on the third operation.
.. doctest::
:options: +NORMALIZE_WHITESPACE
>>> from pymongo import InsertOne, DeleteOne
>>> from pymongo.errors import ClientBulkWriteException
>>> models = [
... InsertOne(namespace="db.test_five", document={"_id": 5}),
... InsertOne(namespace="db.test_six", document={"_id": 6}),
... InsertOne(namespace="db.test_five", document={"_id": 5}), # Duplicate _id
... InsertOne(namespace="db.test_six", document={"_id": 7}),
... DeleteOne(namespace="db.test_five", filter={"_id": 5}),
... ]
>>> try:
... client.bulk_write(models, ordered=False)
... except ClientBulkWriteException as cbwe:
... exception = cbwe
...
>>> exception.write_errors
[{'ok': 0.0,
'idx': 2,
'code': 11000,
'errmsg': 'E11000 duplicate key error ... dup key: { _id: 5 }', ...
'op': {'insert': 'db.test_five', 'document': {'_id': 5}}}]
>>> exception.partial_result.inserted_count
3
>>> exception.partial_result.deleted_count
1

View File

@ -22,6 +22,7 @@ MongoDB, you can start it like so:
copydb
custom_type
bulk
client_bulk
datetimes
geo
gevent

View File

@ -550,7 +550,8 @@ class _AsyncClientBulk:
if result.get("error"):
error = result["error"]
retryable_top_level_error = (
isinstance(error.details, dict)
hasattr(error, "details")
and isinstance(error.details, dict)
and error.details.get("code", 0) in _RETRYABLE_ERROR_CODES
)
retryable_network_error = isinstance(

View File

@ -2274,8 +2274,8 @@ class AsyncMongoClient(common.BaseObject, Generic[_DocumentType]):
1
>>> result.modified_count
0
>>> result.upserted_ids
{3: ObjectId('54f62ee28891e756a6e1abd5')}
>>> result.upserted_count
1
>>> async for doc in db.test.find({}):
... print(doc)
...
@ -2312,6 +2312,8 @@ class AsyncMongoClient(common.BaseObject, Generic[_DocumentType]):
:return: An instance of :class:`~pymongo.results.ClientBulkWriteResult`.
.. seealso:: For more info, see :doc:`/examples/client_bulk`.
.. seealso:: :ref:`writes-and-ids`
.. note:: requires MongoDB server version 8.0+.
@ -2562,7 +2564,9 @@ class _ClientConnectionRetryable(Generic[T]):
if not self._retryable:
raise
if isinstance(exc, ClientBulkWriteException) and exc.error:
retryable_write_error_exc = exc.error.has_error_label("RetryableWriteError")
retryable_write_error_exc = isinstance(
exc.error, PyMongoError
) and exc.error.has_error_label("RetryableWriteError")
else:
retryable_write_error_exc = exc.has_error_label("RetryableWriteError")
if retryable_write_error_exc:

View File

@ -342,10 +342,10 @@ class ClientBulkWriteException(OperationFailure):
return self.details.get("writeConcernErrors", [])
@property
def write_errors(self) -> Optional[Mapping[int, WriteError]]:
def write_errors(self) -> Optional[list[WriteError]]:
"""Errors that occurred during the execution of individual write operations.
This map will contain at most one entry if the bulk write was ordered.
This list will contain at most one entry if the bulk write was ordered.
"""
return self.details.get("writeErrors", {})

View File

@ -985,11 +985,10 @@ _OP_MSG_OVERHEAD = 1000
def _client_construct_op_msg(
command: Mapping[str, Any],
to_send_ops: list[Mapping[str, Any]],
to_send_ns: list[Mapping[str, Any]],
command_encoded: bytes,
to_send_ops_encoded: list[bytes],
to_send_ns_encoded: list[bytes],
ack: bool,
opts: CodecOptions,
buf: _BytesIO,
) -> int:
# Write flags
@ -998,7 +997,7 @@ def _client_construct_op_msg(
# Type 0 Section
buf.write(b"\x00")
buf.write(_dict_to_bson(command, False, opts))
buf.write(command_encoded)
# Type 1 Section for ops
buf.write(b"\x01")
@ -1007,8 +1006,8 @@ def _client_construct_op_msg(
buf.write(b"\x00\x00\x00\x00")
buf.write(b"ops\x00")
# Write all the ops documents
for op in to_send_ops:
buf.write(_dict_to_bson(op, False, opts))
for op_encoded in to_send_ops_encoded:
buf.write(op_encoded)
resume_location = buf.tell()
# Write type 1 section size
length = buf.tell()
@ -1023,8 +1022,8 @@ def _client_construct_op_msg(
buf.write(b"\x00\x00\x00\x00")
buf.write(b"nsInfo\x00")
# Write all the nsInfo documents
for ns in to_send_ns:
buf.write(_dict_to_bson(ns, False, opts))
for ns_encoded in to_send_ns_encoded:
buf.write(ns_encoded)
# Write type 1 section size
length = buf.tell()
buf.seek(size_location)
@ -1045,19 +1044,23 @@ def _client_batched_op_msg_impl(
def _check_doc_size_limits(
op_type: str,
document: Mapping[str, Any],
doc_size: int,
limit: int,
) -> int:
doc_size = len(_dict_to_bson(document, False, opts))
) -> None:
if doc_size > limit:
_raise_document_too_large(op_type, doc_size, limit)
return doc_size
max_bson_size = ctx.max_bson_size
max_write_batch_size = ctx.max_write_batch_size
max_message_size = ctx.max_message_size
# Don't include bulkWrite-command-agnostic fields in document size calculations.
command_encoded = _dict_to_bson(command, False, opts)
# When OP_MSG is used unacknowledged we have to check command
# document size client-side or applications won't be notified.
if not ack:
_check_doc_size_limits("bulkWrite", len(command_encoded), max_bson_size + _COMMAND_OVERHEAD)
# Don't include bulkWrite-command-agnostic fields in batch-splitting calculations.
abridged_keys = ["bulkWrite", "errorsOnly", "ordered"]
if command.get("bypassDocumentValidation"):
abridged_keys.append("bypassDocumentValidation")
@ -1068,17 +1071,14 @@ def _client_batched_op_msg_impl(
command_abridged = {key: command[key] for key in abridged_keys}
command_len_abridged = len(_dict_to_bson(command_abridged, False, opts))
# When OP_MSG is used unacknowledged we have to check command
# document size client-side or applications won't be notified.
if not ack:
_check_doc_size_limits("bulkWrite", command_abridged, max_bson_size + _COMMAND_OVERHEAD)
# Maximum combined size of the ops and nsInfo document sequences.
max_doc_sequences_bytes = max_message_size - (_OP_MSG_OVERHEAD + command_len_abridged)
ns_info = {}
to_send_ops: list[Mapping[str, Any]] = []
to_send_ns: list[Mapping[str, int]] = []
to_send_ops_encoded: list[bytes] = []
to_send_ns_encoded: list[bytes] = []
total_ops_length = 0
total_ns_length = 0
idx = 0
@ -1088,11 +1088,13 @@ def _client_batched_op_msg_impl(
# Check insert/replace document size if unacknowledged.
if real_op_type == "insert":
if not ack:
_check_doc_size_limits(real_op_type, op_doc["document"], max_bson_size)
doc_size = len(_dict_to_bson(op_doc["document"], False, opts))
_check_doc_size_limits(real_op_type, doc_size, max_bson_size)
if real_op_type == "replace":
op_type = "update"
if not ack:
_check_doc_size_limits(real_op_type, op_doc["updateMods"], max_bson_size)
doc_size = len(_dict_to_bson(op_doc["updateMods"], False, opts))
_check_doc_size_limits(real_op_type, doc_size, max_bson_size)
ns_doc_to_send = None
ns_length = 0
@ -1108,30 +1110,40 @@ def _client_batched_op_msg_impl(
op_doc_to_send[op_type] = ns_info[namespace] # type: ignore[index]
# Encode current operation doc and, if newly added, namespace doc.
op_length = len(_dict_to_bson(op_doc_to_send, False, opts))
op_doc_encoded = _dict_to_bson(op_doc_to_send, False, opts)
op_length = len(op_doc_encoded)
if ns_doc_to_send:
ns_length = len(_dict_to_bson(ns_doc_to_send, False, opts))
ns_doc_encoded = _dict_to_bson(ns_doc_to_send, False, opts)
ns_length = len(ns_doc_encoded)
# Check operation document size if unacknowledged.
if not ack:
_check_doc_size_limits(op_type, op_doc_to_send, max_bson_size + _COMMAND_OVERHEAD)
_check_doc_size_limits(op_type, op_length, max_bson_size + _COMMAND_OVERHEAD)
new_message_size = total_ops_length + total_ns_length + op_length + ns_length
# We have enough data, return this batch.
if new_message_size > max_doc_sequences_bytes:
break
# Add op and ns documents to this batch.
to_send_ops.append(op_doc_to_send)
to_send_ops_encoded.append(op_doc_encoded)
total_ops_length += op_length
if ns_doc_to_send:
to_send_ns.append(ns_doc_to_send)
to_send_ns_encoded.append(ns_doc_encoded)
total_ns_length += ns_length
idx += 1
# We have enough documents, return this batch.
if idx == max_write_batch_size:
break
# Construct the entire OP_MSG.
length = _client_construct_op_msg(command, to_send_ops, to_send_ns, ack, opts, buf)
length = _client_construct_op_msg(
command_encoded, to_send_ops_encoded, to_send_ns_encoded, ack, buf
)
return to_send_ops, to_send_ns, length

View File

@ -548,7 +548,8 @@ class _ClientBulk:
if result.get("error"):
error = result["error"]
retryable_top_level_error = (
isinstance(error.details, dict)
hasattr(error, "details")
and isinstance(error.details, dict)
and error.details.get("code", 0) in _RETRYABLE_ERROR_CODES
)
retryable_network_error = isinstance(

View File

@ -2263,8 +2263,8 @@ class MongoClient(common.BaseObject, Generic[_DocumentType]):
1
>>> result.modified_count
0
>>> result.upserted_ids
{3: ObjectId('54f62ee28891e756a6e1abd5')}
>>> result.upserted_count
1
>>> for doc in db.test.find({}):
... print(doc)
...
@ -2301,6 +2301,8 @@ class MongoClient(common.BaseObject, Generic[_DocumentType]):
:return: An instance of :class:`~pymongo.results.ClientBulkWriteResult`.
.. seealso:: For more info, see :doc:`/examples/client_bulk`.
.. seealso:: :ref:`writes-and-ids`
.. note:: requires MongoDB server version 8.0+.
@ -2549,7 +2551,9 @@ class _ClientConnectionRetryable(Generic[T]):
if not self._retryable:
raise
if isinstance(exc, ClientBulkWriteException) and exc.error:
retryable_write_error_exc = exc.error.has_error_label("RetryableWriteError")
retryable_write_error_exc = isinstance(
exc.error, PyMongoError
) and exc.error.has_error_label("RetryableWriteError")
else:
retryable_write_error_exc = exc.has_error_label("RetryableWriteError")
if retryable_write_error_exc:

View File

@ -19,12 +19,18 @@ import sys
sys.path[0:0] = [""]
from test.asynchronous import AsyncIntegrationTest, async_client_context, unittest
from test.asynchronous import (
AsyncIntegrationTest,
async_client_context,
unittest,
)
from test.utils import (
OvertCommandListener,
async_rs_or_single_client,
)
from unittest.mock import patch
from pymongo.asynchronous.client_bulk import _AsyncClientBulk
from pymongo.encryption_options import _HAVE_PYMONGOCRYPT, AutoEncryptionOpts
from pymongo.errors import (
ClientBulkWriteException,
@ -53,6 +59,20 @@ class TestClientBulkWrite(AsyncIntegrationTest):
context.exception._message,
)
@async_client_context.require_version_min(8, 0, 0, -24)
async def test_handles_non_pymongo_error(self):
with patch.object(
_AsyncClientBulk, "write_command", return_value={"error": TypeError("mock type error")}
):
client = await async_rs_or_single_client()
self.addAsyncCleanup(client.close)
models = [InsertOne(namespace="db.coll", document={"a": "b"})]
with self.assertRaises(ClientBulkWriteException) as context:
await client.bulk_write(models=models)
self.assertIsInstance(context.exception.error, TypeError)
self.assertFalse(hasattr(context.exception.error, "details"))
# https://github.com/mongodb/specifications/tree/master/source/crud/tests
class TestClientBulkWriteCRUD(AsyncIntegrationTest):

View File

@ -18,7 +18,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": false,
"isreplicaset": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": false,
"isreplicaset": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -56,7 +56,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -56,7 +56,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -17,7 +17,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -34,7 +34,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -17,7 +17,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -17,7 +17,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
"c:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -59,7 +59,7 @@
"d:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -103,7 +103,7 @@
"e:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -147,7 +147,7 @@
"c:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -20,7 +20,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -39,7 +39,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -15,7 +15,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[

View File

@ -20,7 +20,7 @@
"setName": "rs",
"logicalSessionTimeoutMinutes": 3,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -58,7 +58,7 @@
"isWritablePrimary": false,
"isreplicaset": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -104,7 +104,7 @@
"setName": "rs",
"arbiterOnly": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -152,7 +152,7 @@
"setName": "rs",
"logicalSessionTimeoutMinutes": 2,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -194,7 +194,7 @@
"hidden": true,
"logicalSessionTimeoutMinutes": 1,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -244,7 +244,7 @@
"setName": "rs",
"logicalSessionTimeoutMinutes": null,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -49,7 +49,7 @@
"a:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -11,7 +11,7 @@
"helloOk": true,
"isWritablePrimary": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -40,7 +40,7 @@
"a:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -50,7 +50,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -20,7 +20,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -67,7 +67,7 @@
"$oid": "000000000000000000000002"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -114,7 +114,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -20,7 +20,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -67,7 +67,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -114,7 +114,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -49,7 +49,7 @@
],
"setName": "wrong",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -10,7 +10,7 @@
"ok": 1,
"helloOk": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -21,7 +21,7 @@
"C:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -22,7 +22,7 @@
"C:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -67,7 +67,7 @@
"C:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
"setVersion": 1,
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 7
}
]
],
@ -66,7 +66,7 @@
"$oid": "000000000000000000000002"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -116,7 +116,7 @@
"setVersion": 1,
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 7
}
]
],
@ -167,7 +167,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 7
}
]
],

View File

@ -15,7 +15,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -41,7 +41,7 @@
"isWritablePrimary": false,
"isreplicaset": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -15,7 +15,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -41,7 +41,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -15,7 +15,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -38,7 +38,7 @@
{
"ok": 1,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -15,7 +15,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -44,7 +44,7 @@
],
"setName": "wrong",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -15,7 +15,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -20,7 +20,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -39,7 +39,7 @@
"$oid": "000000000000000000000002"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -115,7 +115,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -159,7 +159,7 @@
"$oid": "000000000000000000000003"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -203,7 +203,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -20,7 +20,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -39,7 +39,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -115,7 +115,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -159,7 +159,7 @@
"$oid": "000000000000000000000002"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -203,7 +203,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
"setName": "rs",
"primary": "b:27017",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -48,7 +48,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -31,7 +31,7 @@
"ok": 1,
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
]

View File

@ -17,7 +17,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -51,7 +51,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -86,7 +86,7 @@
"c:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -127,7 +127,7 @@
"c:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -17,7 +17,7 @@
"me": "a:27017",
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -52,7 +52,7 @@
"me": "c:27017",
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -15,7 +15,7 @@
],
"setName": "wrong",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -18,7 +18,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -49,7 +49,7 @@
"helloOk": true,
"isWritablePrimary": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -84,7 +84,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -120,7 +120,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -11,7 +11,7 @@
"helloOk": true,
"isWritablePrimary": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -15,7 +15,7 @@
"a:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -46,7 +46,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -32,7 +32,7 @@
"c:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -32,7 +32,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -59,7 +59,7 @@
{
"ok": 0,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -32,7 +32,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -59,7 +59,7 @@
{
"ok": 0,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -32,7 +32,7 @@
"ok": 1,
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
]

View File

@ -16,7 +16,7 @@
],
"setName": "wrong",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -51,7 +51,7 @@
],
"setName": "wrong",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -17,7 +17,7 @@
"setName": "rs",
"setVersion": 2,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 7
}
]
],
@ -56,7 +56,7 @@
"setName": "rs",
"setVersion": 1,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 7
}
]
],

View File

@ -15,7 +15,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -45,7 +45,7 @@
],
"setName": "wrong",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[

View File

@ -16,7 +16,7 @@
"b:27017"
],
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[

View File

@ -12,7 +12,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -20,7 +20,7 @@
"$oid": "000000000000000000000001"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 7
}
]
],
@ -64,7 +64,7 @@
"setName": "rs",
"setVersion": 2,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 7
}
]
],
@ -108,7 +108,7 @@
"$oid": "000000000000000000000002"
},
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 7
}
]
],

View File

@ -17,7 +17,7 @@
],
"setName": "wrong",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -13,7 +13,7 @@
"msg": "isdbgrid",
"logicalSessionTimeoutMinutes": 1,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -25,7 +25,7 @@
"msg": "isdbgrid",
"logicalSessionTimeoutMinutes": 2,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -56,7 +56,7 @@
"msg": "isdbgrid",
"logicalSessionTimeoutMinutes": 1,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -67,7 +67,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -23,7 +23,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -76,7 +76,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -23,7 +23,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -26,7 +26,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 2,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[

View File

@ -15,7 +15,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": true,
"msg": "isdbgrid",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": true,
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -17,7 +17,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -17,7 +17,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -11,7 +11,7 @@
"helloOk": true,
"isWritablePrimary": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -16,7 +16,7 @@
],
"setName": "wrong",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],
@ -45,7 +45,7 @@
],
"setName": "rs",
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -11,7 +11,7 @@
"helloOk": true,
"isWritablePrimary": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -12,7 +12,7 @@
"isWritablePrimary": true,
"logicalSessionTimeoutMinutes": 7,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -11,7 +11,7 @@
"helloOk": true,
"isWritablePrimary": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
],
[
@ -21,7 +21,7 @@
"helloOk": true,
"isWritablePrimary": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -11,7 +11,7 @@
"helloOk": true,
"isWritablePrimary": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -10,7 +10,7 @@
"ok": 1,
"ismaster": true,
"minWireVersion": 0,
"maxWireVersion": 6
"maxWireVersion": 21
}
]
],

View File

@ -7,7 +7,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 50,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1000001"
@ -19,7 +19,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1"
@ -37,7 +37,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 50,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1000001"
@ -49,7 +49,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1"
@ -63,7 +63,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1"

View File

@ -13,7 +13,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
},
{
"address": "b:27017",
@ -25,7 +25,7 @@
"$numberLong": "2"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
},
{
"address": "c:27017",
@ -37,7 +37,7 @@
"$numberLong": "1"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
}
]
},
@ -56,7 +56,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
},
{
"address": "b:27017",
@ -68,7 +68,7 @@
"$numberLong": "2"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
}
],
"in_latency_window": [
@ -82,7 +82,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
}
]
}

View File

@ -13,7 +13,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
},
{
"address": "b:27017",
@ -25,7 +25,7 @@
"$numberLong": "2"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
},
{
"address": "c:27017",
@ -37,7 +37,7 @@
"$numberLong": "1"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
}
]
},
@ -56,7 +56,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
},
{
"address": "b:27017",
@ -68,7 +68,7 @@
"$numberLong": "2"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
}
],
"in_latency_window": [
@ -82,7 +82,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
}
]
}

View File

@ -13,7 +13,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
},
{
"address": "b:27017",
@ -25,7 +25,7 @@
"$numberLong": "2"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
},
{
"address": "c:27017",
@ -37,7 +37,7 @@
"$numberLong": "1"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
}
]
},
@ -56,7 +56,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
},
{
"address": "b:27017",
@ -68,7 +68,7 @@
"$numberLong": "2"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
}
],
"in_latency_window": [
@ -82,7 +82,7 @@
"$numberLong": "2"
}
},
"maxWireVersion": 6
"maxWireVersion": 21
}
]
}

View File

@ -17,7 +17,7 @@
{
"address": "c:27017",
"type": "RSSecondary",
"maxWireVersion": 6,
"maxWireVersion": 21,
"avg_rtt_ms": 5,
"lastWrite": {
"lastWriteDate": {
@ -35,7 +35,7 @@
{
"address": "c:27017",
"type": "RSSecondary",
"maxWireVersion": 6,
"maxWireVersion": 21,
"avg_rtt_ms": 5,
"lastWrite": {
"lastWriteDate": {
@ -48,7 +48,7 @@
{
"address": "c:27017",
"type": "RSSecondary",
"maxWireVersion": 6,
"maxWireVersion": 21,
"avg_rtt_ms": 5,
"lastWrite": {
"lastWriteDate": {

View File

@ -8,7 +8,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1000001"
@ -20,7 +20,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1"
@ -39,7 +39,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1000001"
@ -53,7 +53,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1000001"

View File

@ -13,7 +13,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6,
"maxWireVersion": 21,
"tags": {
"data_center": "tokyo"
}
@ -28,7 +28,7 @@
"$numberLong": "1"
}
},
"maxWireVersion": 6,
"maxWireVersion": 21,
"tags": {
"data_center": "nyc"
}
@ -58,7 +58,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6,
"maxWireVersion": 21,
"tags": {
"data_center": "tokyo"
}
@ -75,7 +75,7 @@
"$numberLong": "125002"
}
},
"maxWireVersion": 6,
"maxWireVersion": 21,
"tags": {
"data_center": "tokyo"
}

View File

@ -8,7 +8,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "125002"
@ -23,7 +23,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "2"
@ -38,7 +38,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "1"
@ -53,7 +53,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "2"
@ -80,7 +80,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "2"
@ -97,7 +97,7 @@
"type": "RSSecondary",
"avg_rtt_ms": 5,
"lastUpdateTime": 0,
"maxWireVersion": 6,
"maxWireVersion": 21,
"lastWrite": {
"lastWriteDate": {
"$numberLong": "2"

Some files were not shown because too many files have changed in this diff Show More