===================
MongoDB PHP Library
===================

.. default-domain:: mongodb

The |php-library| provides a high-level abstraction around the lower-level
`PHP driver <https://php.net/mongodb>`_, also known as the ``mongodb``
extension.

While the ``mongodb`` extension provides a limited API for executing commands,
queries, and write operations, the |php-library| implements an API similar to
that of the `legacy PHP driver <http://php.net/manual/en/book.mongo.php>`_. The
library contains abstractions for client, database, and collection objects, and
provides methods for CRUD operations and common commands such as index and
collection management.

If you are developing a PHP application with MongoDB, you should consider using
this library, or another high-level abstraction, instead of the extension alone.

For additional information about this library and the ``mongodb`` extension, see
the `Architecture Overview <http://php.net/manual/en/mongodb.overview.php>`_
article in the extension documentation. `Derick Rethans
<http://derickrethans.nl/>`_ has also written a series of blog posts entitled
*New MongoDB Drivers for PHP and HHVM*:

- `Part One: History <https://derickrethans.nl/new-drivers.html>`_

- `Part Two: Architecture
  <https://derickrethans.nl/new-drivers-part2.html>`_

- `Part Three: Cursor Behaviour
  <https://derickrethans.nl/new-drivers-part3-cursor.html>`_

New to MongoDB?
---------------

If you are a new MongoDB user, these links should help you become more familiar
with MongoDB and introduce some of the concepts and terms you will encounter in
this documentation:

- :manual:`Introduction to CRUD operations in MongoDB </core/crud>`

- :manual:`What is a MongoDB document? </core/document>`

- :manual:`Dot notation for accessing document properties
  </core/document/#dot-notation>`

- :manual:`ObjectId: MongoDB's document identifier </reference/object-id/>`

.. class:: hidden

   .. toctree::
      :titlesonly:

      Installation </tutorial/install-php-library>
      /tutorial
      /upgrade
      /reference

.. /getting-started
