The Marrow Mongo Document Mapper
  • Introduction
  • Installation
  • Contributing
  • Guide
    • Introduction
    • Modelling
    • Management
    • Interaction
    • Fields
    • Indexes
    • Trait Mix-Ins
    • Plugin Namespaces
  • Reference
    • Decimal
    • Field
    • Index
    • Fields
      • Alias
      • Array
      • Binary
      • Boolean
      • Date
      • Double
      • Embed
      • Integer
      • Link
      • Long
      • Mapping
      • Markdown
      • Number
      • ObjectId
      • Path
      • Period
      • Plugin
      • Reference
      • Regex
      • Set
      • String
      • TTL
      • Timestamp
    • Parametric
      • F (Filter)
      • P (Project)
      • S (Sort)
      • U (Update)
    • Query
      • Ops
      • Q
    • Traits
      • Collection
      • Derived
      • Expires
      • Heirarchical
      • Identified
      • Localized
      • Lockable
      • Published
      • Stateful
      • Queryable
    • Utilities
      • Capped Collections
      • Geospatial
      • Logging
  • End Matter
    • Colophon
    • License
    • History
Powered by GitBook
On this page

Was this helpful?

Edit on Git
  1. Guide

Management

PreviousModellingNextInteraction

Last updated 6 years ago

Was this helpful?

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 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.

Account.bind(db)

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.

Account.create_collection()

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

collection metadata and calculated properties