Old Mongo (Draft Modulestore)

The original MongoDB implementation of the modulestore. Courses stored in this modulestore have course locators that are SlashSeparatedCourseKeys and serialize to this format:

edX/Demo_Course/2014_T1

Course Format in MongoDB

  • There's a single "modulestore" MongoDB collection.
  • In the collection, each block is stored as a separate document and has _id pointers to its children.
  • There are no versions associated with a course as a whole.
  • Each course has a set of draft modules and a set of published modules.
  • Course key and branch information are stored with each block document.

The Code

Query Patterns

To render the courseware page, the Old Mongo modulestore loads the root node and two block levels deep. It grabs all of the block's display names and uses those to render the table of contents.

When displaying a section, it will grab an entire subtree of the course corresponding to that section. Each block retrieval is a single MongoDB request.