Mangan - MongoDB Document Mapper

Just to store objects.

This extension allows storing hierarchy of objects in document database MongoDB. It similar in usage to Yii Active Record. Main difference is that it operates on MongoDB and that contrary to relational databases, and classic Active Record, in this case class fields can be of any complex type, simply embedded object.

This is fork from original Yii MongoDB Suite, which brings several important enhancements and bug fixes. Name comes from freely merging and mixing words of Mongo and Annotations, thus resulting in Mangan.


  • Documents metadata is defined using annotations
  • Allow storing mixed type embedded documents and mixed type of embedded document arrays
  • Built-in I18N fields

Why another version?

Original MongoDB Suite, had several limitations, and most important one - was problems with embedding documents - there could be only one type of document type per field. And embedded arrays was sloppy. In Maslosoft Edition, when defining embedded object, there is only suggestion of what type it should be. Same applies to array of embedded documents - each element of array can be of different type.

Storing multilingual content - there was no such feature in original suite. In this version, it is simply declared by @I18N annotation, and then it can be used like any other field.