Mandango

The easy, powerful and ultrafast ODM for PHP and MongoDB.

What is Mandango?

Mandango is a simple, poweful and ultrafast Object Document Mapper (ODM) for PHP and MongoDB.

What is MongoDB?

MongoDB (Mongo) is a scalable, high-performance, open source, document-oriented database.

Mongo (and the NOSQL movement in general) answer to the needs for performance of databases, that each time more applications (especially web) have, due to the high number of reads, writes and the high amount of information to store.

What is an ODM?

An ODM is a tool that maps the structure of the databases in objects (PHP in this case). This way you can work in your documents from the database with PHP objects, with all the great advantages that it carries.

An ODM also abstracts usual operations with the documents, and provides with utilities that can simplify a lot common tasks.

An ODM also has a disadvantage: the performance. This is due to using objects and abstracting operations.

Why an ODM with MongoDB?

Apparently the Mongo philosophy doesn't agree with the philosophy of ODM, because on one hand Mongo speeds the database and on the other hand the ODM slow down the applications. It's true, but we don't have to forget of the rapid application development.

The Rapid Application Development (RAD) is very important in order that your applications are running as soon as it is possible, because it isn't worthwhile to spend a lot of time finishing a superfast application if when it is going to be in production it can't compete or it's unmaintainable.

Why Mandango?

Mandango is to the ODM what Mongo is to databases

  • Simple: Mandango is developed in a simple way. This makes it very easy to learn, use, and avoid bugs.
  • Powerful: Mandango is very flexible thanks to Mondator, so you'll be able to use it to develop any type of application.
  • Ultrafast: Mandango has been designed to be extremely light in memory consumption and processing cost.

Aren't you convinced yet? Let me show you a few more features:

  • References and Embeddeds: Mandango allows you to work with references and embeddeds very easily.
  • Extensions: Mandango can be customized infinitely with Mondator Extensions.
  • Indexes: Mandango allows you to work easily with the indexes of the collections.
  • Events: Mandango throws hooks before and after inserting, updating, saving and deleting documents.
  • GridFS: Mandango allows to save files of any size using GridFS.
  • Log: Mandango allows to save logs of the queries to improve the development.
  • batchInsert: Mandango uses batchInsert to insert documents in an efficient way.
  • Atomic Operations: Mandango uses atomic operations to update and delete documents efficiently.
  • Integration with IDEs: Mandango uses generated code, so you may integrate it with your IDE.
  • Tested: Mandango is completely tested with automated test with PHPUnit.
Fork me on GitHub