topology_description
– An object representation of a deployment of MongoDB servers.¶
Represent a deployment of MongoDB servers.
See also
This module is compatible with both the synchronous and asynchronous PyMongo APIs.
- class pymongo.topology_description.TopologyDescription¶
Representation of a deployment of MongoDB servers.
- Parameters:
topology_type (int) – initial type
server_descriptions (dict[_Address, ServerDescription]) – dict of (address, ServerDescription) for all seeds
replica_set_name (Optional[str]) – replica set name or None
max_set_version (Optional[int]) – greatest setVersion seen from a primary, or None
max_election_id (Optional[ObjectId]) – greatest electionId seen from a primary, or None
topology_settings (Any) – a TopologySettings
- apply_selector(selector, address=None, custom_selector=None)¶
List of servers matching the provided selector(s).
- Parameters:
selector (Any) – a callable that takes a Selection as input and returns a Selection as output. For example, an instance of a read preference from
read_preferences
.address (Tuple[str, int | None] | None) – A server address to select.
custom_selector (Callable[[List[ServerDescription]], List[ServerDescription]] | None) – A callable that augments server selection rules. Accepts a list of
ServerDescription
objects and return a list of server descriptions that should be considered suitable for the desired operation.
- Return type:
Added in version 3.4.
- check_compatible()¶
Raise ConfigurationError if any server is incompatible.
A server is incompatible if its wire protocol version range does not overlap with PyMongo’s.
- Return type:
None
- has_readable_server(read_preference=Primary())¶
Does this topology have any readable servers available matching the given read preference?
- Parameters:
read_preference (_ServerMode) – an instance of a read preference from
read_preferences
. Defaults toPRIMARY
.- Return type:
Note
When connected directly to a single server this method always returns
True
.Added in version 3.4.
- has_writable_server()¶
Does this topology have a writable server available?
Note
When connected directly to a single server this method always returns
True
.Added in version 3.4.
- Return type:
- property known_servers: list[ServerDescription]¶
List of Servers of types besides Unknown.
- property readable_servers: list[ServerDescription]¶
List of readable Servers.
- reset()¶
A copy of this description, with all servers marked Unknown.
- Return type:
- reset_server(address)¶
A copy of this description, with one server marked Unknown.
- Parameters:
- Return type:
- server_descriptions()¶
dict of (address,
ServerDescription
).- Return type:
dict[Tuple[str, int | None], ServerDescription]