When an application conducts queries only, there is no need to write anything to the database. Accordingly, we need to find a privilege action (that is, right) allowing a user to read from the database. The most likely right would be find. This right allows us to run the pymongo.collection.find() and pymongo.collection.aggregate() methods. This is perfect for an application that only needs to return the results of a query.
We do not assign this right directly to a user, however; instead, we select a role that includes this right, and assign the role to a database user. With this in mind, we will now consider the read built-in role. This role includes the find action privilege (or right), and also allows related operations, such as the ability to list collections and manage cursors (for example, the results of a query).