Doctrine MongoDB ODM's documentation!
=====================================

The Doctrine MongoDB ODM documentation is comprised of tutorials, a reference section and
cookbook articles that explain different parts of the Object Document mapper.

Getting Help
------------

If this documentation is not helping to answer questions you have about
Doctrine MongoDB ODM don't panic. You can get help from different sources:

-  Slack chat room `#mongodb-odm <https://www.doctrine-project.org/slack>`_
-  On `Stack Overflow <http://stackoverflow.com/questions/tagged/doctrine-odm>`_
-  The `Doctrine Mailing List <http://groups.google.com/group/doctrine-user>`_
-  Report a bug on `GitHub <https://github.com/doctrine/mongodb-odm/issues>`_.

Getting Started
---------------

  :doc:`Getting Started <tutorials/getting-started>`
  :doc:`Introduction <reference/introduction>`
  :doc:`Architecture <reference/architecture>`

Mapping Objects onto a Database
-------------------------------

* **Basic Reference**:
  :doc:`Objects and Fields <reference/basic-mapping>`
  :doc:`References <reference/reference-mapping>`
  :doc:`Bi-Directional References <reference/bidirectional-references>`
  :doc:`Complex References <reference/complex-references>`
  :doc:`Indexes <reference/indexes>`
  :doc:`Inheritance <reference/inheritance-mapping>`

* **Embedded Data**:
  :doc:`Embedded <reference/embedded-mapping>`
  :doc:`Trees <reference/trees>`

* **GridFS**:
  :doc:`Storing Files in GridFS <reference/storing-files-with-mongogridfs>`

* **Mapping Driver References**:
  :doc:`XML <reference/xml-mapping>`
  :doc:`YAML <reference/yml-mapping>`
  :doc:`Docblock Annotations <reference/annotations-reference>`
  :doc:`Metadata Drivers <reference/metadata-drivers>`

Working with Objects
--------------------

* **Basic Reference**:
  :doc:`Documents <reference/working-with-objects>`
  :doc:`Repositories <reference/document-repositories>`
  :doc:`Events <reference/events>`
  :doc:`Migrations <reference/migrating-schemas>`

* **Query Reference**:
  :doc:`Query Builder API <reference/query-builder-api>`
  :doc:`Aggregation Pipeline queries <reference/aggregation-builder>`
  :doc:`Geo Spatial Queries <reference/geospatial-queries>`
  :doc:`Slave Okay Queries <reference/slave-okay-queries>`
  :doc:`Find and Update <reference/find-and-update>`
  :doc:`Filters <reference/filters>`
  :doc:`Priming References <reference/priming-references>`
  :doc:`Eager Cursors <reference/eager-cursors>`
  :doc:`Map Reduce <reference/map-reduce>`

Advanced Topics
---------------

* **Collections**:
  :doc:`Capped Collections <reference/capped-collections>`
  :doc:`Storage Strategies <reference/storage-strategies>`
  :doc:`Custom Collections <reference/custom-collections>`
  :doc:`Sharded setups <reference/sharding>`

* **Transactions and Concurrency**:
  :doc:`Transactions and Concurrency <reference/transactions-and-concurrency>`

* **Best Practices**:
  :doc:`Best Practices <reference/best-practices>`

* **Performance**:
  :doc:`Change Tracking Policies <reference/change-tracking-policies>`

* **Logging**:
  :doc:`Logging <reference/logging>`

Cookbook
--------

* **Examples**:
  :doc:`Soft Delete <cookbook/soft-delete-extension>`
  :doc:`Simple Search Engine <cookbook/simple-search-engine>`

* **Tricks**:
  :doc:`Blending ORM and MongoDB ODM <cookbook/blending-orm-and-mongodb-odm>`
  :doc:`Mapping classes to ORM and ODM <cookbook/mapping-classes-to-orm-and-odm>`

* **Implementation**:
  :doc:`Array Access <cookbook/implementing-array-access-for-domain-objects>`
  :doc:`Notify ChangeTracking Example <cookbook/implementing-the-notify-changetracking-policy>`
  :doc:`Using Wakeup Or Clone <cookbook/implementing-wakeup-or-clone>`
  :doc:`Validation <cookbook/validation-of-documents>`
  :doc:`Simple Search Engine <cookbook/simple-search-engine>`
  :doc:`Keeping Your Modules Independent <cookbook/resolve-target-document-listener>`
