Collection Management

Document subclasses utilizing the Collection trait (which Queryable inherits) gain class-level active record behaviours. Additionally, Collection inherits Identified as well, providing an automatically generated ObjectId field named id which maps to the stored _id key. There is a fairly substantial number of collection metadata and calculated properties available.

Before much can be done, it will be necessary to get a reference to a MongoDB connection or database object. Begin by importing the client object from the pymongo package.

from pymongo import MongoClient

Then, open a connection to a MongoDB server, here, running locally. We can save some space by defining the database to utilize at the same time, and requesting a handle to the default database back without needing to refer to it by name a second time.

client = MongoClient('mongodb://localhost/test')
db = client.get_database()

Binding our Account class to a database will look up the collection name to use from the __collection__ attribute. Alternatively you could bind directly to a specific collection. Either way, binding will automatically apply the metadata options for data access and validation and enable the get_collection method to provide you the correct, configured object.


Two class methods are provided for collection management requiring awareness of our metadata: create_collection and create_indexes. Creating the collection will create any declared indexes automatically by default. For other collection-level management operations it is recommended to utilize get_collection and issue calls to the PyMongo API directly.


With the class bound you can now more easily interact with your documents in the collection.

results matching ""

    No results matching ""