topology_description – An object representation of a deployment of MongoDB servers.

Represent a deployment of MongoDB servers.

class pymongo.topology_description.TopologyDescription

Representation of a deployment of MongoDB servers.

Parameters
  • topology_type: initial type

  • server_descriptions: dict of (address, ServerDescription) for all seeds

  • replica_set_name: replica set name or None

  • max_set_version: greatest setVersion seen from a primary, or None

  • max_election_id: greatest electionId seen from a primary, or None

  • topology_settings: a TopologySettings

apply_selector(selector: Any, address: Optional[Tuple[str, Optional[int]]] = None, custom_selector: Optional[Callable[[List[pymongo.server_description.ServerDescription]], List[pymongo.server_description.ServerDescription]]] = None) List[pymongo.server_description.ServerDescription]

List of servers matching the provided selector(s).

Parameters
  • selector: 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 (optional): A server address to select.

  • custom_selector (optional): 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.

New in version 3.4.

check_compatible() None

Raise ConfigurationError if any server is incompatible.

A server is incompatible if its wire protocol version range does not overlap with PyMongo’s.

property common_wire_version: Optional[int]

Minimum of all servers’ max wire versions, or None.

property has_known_servers: bool

Whether there are any Servers of types besides Unknown.

has_readable_server(read_preference: pymongo.read_preferences._ServerMode = Primary()) bool

Does this topology have any readable servers available matching the given read preference?

Parameters

Note

When connected directly to a single server this method always returns True.

New in version 3.4.

has_writable_server() bool

Does this topology have a writable server available?

Note

When connected directly to a single server this method always returns True.

New in version 3.4.

property known_servers: List[pymongo.server_description.ServerDescription]

List of Servers of types besides Unknown.

property logical_session_timeout_minutes: Optional[int]

Minimum logical session timeout, or None.

property max_election_id: Optional[bson.objectid.ObjectId]

Greatest electionId seen from a primary, or None.

property max_set_version: Optional[int]

Greatest setVersion seen from a primary, or None.

property readable_servers: List[pymongo.server_description.ServerDescription]

List of readable Servers.

property replica_set_name: Optional[str]

The replica set name.

reset() pymongo.topology_description.TopologyDescription

A copy of this description, with all servers marked Unknown.

reset_server(address: Tuple[str, Optional[int]]) pymongo.topology_description.TopologyDescription

A copy of this description, with one server marked Unknown.

server_descriptions() Dict[Tuple[str, Optional[int]], pymongo.server_description.ServerDescription]

Dict of (address, ServerDescription).

property topology_type: int

The type of this topology.

property topology_type_name: str

The topology type as a human readable string.

New in version 3.4.