The MongoDB Object Document Mapper (ODM) is much like the Doctrine2 ORM in its philosophy and how it works. In other words, like the Doctrine2 ORM, with the Doctrine ODM, you deal only with plain PHP objects, which are then persisted transparently to and from MongoDB.

You can read more about the Doctrine MongoDB ODM via the project's documentation.

A bundle is available that integrates the Doctrine MongoDB ODM into Symfony, making it easy to configure and use.

This documentation will feel a lot like the Doctrine2 ORM chapter, which talks about how the Doctrine ORM can be used to persist data to relational databases (e.g. MySQL). This is on purpose - whether you persist to a relational database via the ORM or MongoDB via the ODM, the philosophies are very much the same.

Doctrine Extensions: Timestampable, Sluggable, etc.

Doctrine is quite flexible, and a number of third-party extensions are available that allow you to easily perform repeated and common tasks on your entities. These include thing such as Sluggable, Timestampable, Loggable, Translatable, and Tree.

For more information on how to find and use these extensions, see the cookbook article about using common Doctrine extensions.