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: Tuple[str, int | None] | None = None, custom_selector: Callable[[List[ServerDescription]], List[ServerDescription]] | None = None) List[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.

在 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: int | None#

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: _ServerMode = Primary()) bool#

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

Parameters:

备注

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

在 3.4 版本加入.

has_writable_server() bool#

Does this topology have a writable server available?

备注

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

在 3.4 版本加入.

property known_servers: List[ServerDescription]#

List of Servers of types besides Unknown.

property logical_session_timeout_minutes: int | None#

Minimum logical session timeout, or None.

property max_election_id: ObjectId | None#

Greatest electionId seen from a primary, or None.

property max_set_version: int | None#

Greatest setVersion seen from a primary, or None.

property readable_servers: List[ServerDescription]#

List of readable Servers.

property replica_set_name: str | None#

The replica set name.

reset() TopologyDescription#

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

reset_server(address: Tuple[str, int | None]) TopologyDescription#

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

server_descriptions() Dict[Tuple[str, int | None], 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.

在 3.4 版本加入.