command_cursor – Tools for iterating over MongoDB command results

CommandCursor class to iterate over command results.

class pymongo.command_cursor.CommandCursor(collection, cursor_info, address, retrieved=0)

Create a new command cursor.


The (host, port) of the server used, or None.

New in version 3.0.


Does this cursor have the potential to return more data?

Even if alive is True, next() can raise StopIteration. Best to use a for loop:

for doc in collection.aggregate(pipeline):


alive can be True while iterating a cursor from a failed server. In this case alive will return False after next() fails to retrieve the next batch of results from the server.


Limits the number of documents returned in one batch. Each batch requires a round trip to the server. It can be adjusted to optimize performance and limit data transfer.


batch_size can not override MongoDB’s internal limits on the amount of data it will return to the client in a single batch (i.e if you set batch size to 1,000,000,000, MongoDB will currently only return 4-16MB of results per batch).

Raises TypeError if batch_size is not an integer. Raises ValueError if batch_size is less than 0.

  • batch_size: The size of each batch of results requested.

Explicitly close / kill this cursor. Required for PyPy, Jython and other Python implementations that don’t use reference counting garbage collection.


Returns the id of the cursor.


Advance the cursor.

Previous topic

collection – Collection level operations

Next topic

cursor – Tools for iterating over MongoDB query results

This Page