Sessions at PyGotham about MongoDB on Friday 16th September

One of the challenges that comes with moving to MongoDB is figuring how to best model your data. While most developers have internalized the rules of thumb for designing schemas for RDBMSs, these rules don't always apply to MongoDB. The simple fact that documents can represent rich, schema-free data structures means that we have a lot of viable alternatives to the standard, normalized, relational model. Not only that, MongoDB has several unique features, such as atomic updates and indexed array keys, that greatly influence the kinds of schemas that make sense. Understandably, this begets good questions: Are foreign keys permissible, or is it better to represent one-to-many relations withing a single document? Are join tables necessary, or is there another technique for building out many-to-many relationships? What level of denormalization is appropriate? How do my data modeling decisions affect the efficiency of updates and queries? In this session, we'll answer these questions and more, provide a number of data modeling rules of thumb, and discuss the tradeoffs of various data modeling strategies.

Love Django, but hate schema migrations? Need to scale to more than a few gigabytes of data? Tired of flattening your data, only to have your code rebuild the hierarchy? This talk will show you how you can leave JOINs behind and embrace MongoDB for your next Django project. MongoDB's hierarchical document-oriented design makes it a natural fit for web development, and when coupled with Python's easy-going nature, using MongoDB with Django is a breeze. In this talk, learn about MongoDB, the most popular NoSQL database; MongoEngine and friends, the Djangonic MongoDB adapter; and watch as we build a highly-scalable online game before your very eyes.

This talk will look inside the technology and architecture used at Fiesta (https://fiesta.cc), with a focus on the deployment of Python web apps, processing email, and using MongoDB in practice. The goal is to provide generic insights about the tools we've chosen, rather than information specific to our business.

MongoDB supports asynchronous replication of data between servers for failover and redundancy. In this session, we'll introduce the different modes the replication, including master-slave and replica sets, and we'll describe how to achieve better durability by adjusting the write concern. We'll also discuss backups and provide some tips on scaling with replication alone.

This intermediate-level talk will teach you techniques using the popular NoSQL database MongoDB and the Python library Ming to write maintainable, high-performance, and scalable applications. We will cover everything you need to become an effective Ming/MongoDB developer from basic PyMongo queries to high-level object-document mapping setups in Ming.

This session is a deep dive into the implementation of sharding within MongoDB. We'll review the MongoDB's sharding architecture, which blends ideas from RDBMSes, key/value stores, and large distributed systems like BigTable. We'll then take a look under the hood to show how queries work across a sharded set up, and how data is balanced and migrated.