master_slave_connection – Master-slave connection to MongoDB

Master-Slave connection to Mongo.

Performs all writes to Master instance and distributes reads among all slaves. Reads are tried on each slave in turn until the read succeeds or all slaves failed.

class pymongo.master_slave_connection.MasterSlaveConnection(master, slaves=[], document_class=<type 'dict'>, tz_aware=False)

Create a new Master-Slave connection.

The resultant connection should be interacted with using the same mechanisms as a regular Connection. The Connection instances used to create this MasterSlaveConnection can themselves make use of connection pooling, etc. ‘Connection’ instances used as slaves should be created with the read_preference option set to SECONDARY. Safe options are inherited from master and can be changed in this instance.

Raises TypeError if master is not an instance of Connection or slaves is not a list of at least one Connection instances.

Parameters :
  • master: Connection instance for the writable Master
  • slaves (optional): list of Connection instances for the read-only slaves
  • document_class (optional): default class to use for documents returned from queries on this connection
  • tz_aware (optional): if True, datetime instances returned as values in a document by this MasterSlaveConnection will be timezone aware (otherwise they will be naive)

Use getlasterrer with every write operation?

New in version 2.0.


Returns a dict of the getlasterror options set on this instance.

New in version 2.0.


Set getlasterror options for this instance.

Valid options include j=<bool>, w=<int>, wtimeout=<int>, and fsync=<bool>. Implies safe=True.

Parameters :
  • **kwargs: Options should be passed as keyword

    arguments (e.g. w=2, fsync=True)

New in version 2.0.


Unset getlasterror options for this instance.

If no options are passed unsets all getlasterror options. This does not set safe to False.

Parameters :
  • *options: The list of options to unset.

New in version 2.0.

close_cursor(cursor_id, connection_id)

Close a single database cursor.

Raises TypeError if cursor_id is not an instance of (int, long). What closing the cursor actually means depends on this connection’s cursor manager.

Parameters :
  • cursor_id: cursor id to close
  • connection_id: id of the Connection instance where the cursor was opened

Get a list of all database names.


Disconnect from MongoDB.

Disconnecting will call disconnect on all master and slave connections.

See also

Module connection

New in version 1.10.1.


Default class to use for documents returned on this connection.


Drop a database.

Parameters :
  • name_or_database: the name of a database to drop or the object itself

End the current “request”.

See documentation for Connection.end_request.


Set the cursor manager for this connection.

Helper to set cursor manager for each individual Connection instance that make up this MasterSlaveConnection.


Start a “request”.

Start a sequence of operations in which order matters. Note that all operations performed within a request will be sent using the Master connection.

Previous topic

errors – Exceptions raised by the pymongo package

Next topic

message – Tools for creating messages to be sent to MongoDB

This Page