The purpose of this driver is to provide exceptionally thin glue between MongoDB and PHP, implementing only fundamental and performance-critical components necessary to build a fully-functional MongoDB driver. Install php mongodb driver To work with mongodb in php you have to install php mongodb extension. Visit php mongodb packages site and d ownload mongodb driver package compatible with your php version and OS. For example for windows you can visit this link.

The PHP team is delighted to announce that version 1.0.0 of our new mongodb PHP extension is now available on PECL. This stable 1.0.0 release is the culmination of more than one year of active development and represents a substantial evolution in the PHP driver's architecture.

Introduction

This extension is written atop libmongoc and libbson, and purposefully offers a basic API for core functionality (e.g. connection handling, queries, commands, write operations, and BSON serialization). Additional functionality is left to be implemented by userland libraries, such as our mongo-php-library. Our hope is that this separation of concerns will keep the driver lightweight (and fast), easier to maintain, and make it an ideal starting point for constructing your own framework or library. If you are building an application with MongoDB, we would suggest that you use this driver in conjunction with the higher-level mongo-php-library.

For a more detailed explanation of our new architecture, see the following article on the MongoDB blog, which was published earlier this year:
https://www.mongodb.com/blog/post/call-feedback-new-php-and-hhvm-drivers

Compatibility

This initial release provides compatibility with MongoDB 2.4 through 3.0 and PHP 5.4 through 5.6 (PHP 7 is scheduled for 1.1.0). Support for Facebook's HHVM runtime will be provided by mongo-hhvm-driver, which implements the same public API found in this extension. A common API means that mongo-php-library is compatible with both this extension and its HHVM counterpart.

This driver implements several new MongoDB driver specifications, such as Server Discover and Monitoring and Server Selection. Higher-level specifications, such as our CRUD API, are implemented in mongo-php-library.

Improvements

  • More concise API (e.g. command helpers are now left to userland libraries)
  • Direct access to individual server connections
  • Compatibility with cross-driver specifications
  • Richer BSON handling (e.g. extended JSON, ODM functionality)

BSON handling has improved considerably from our legacy driver. Users now have much more control over how BSON arrays and documents are unserialized into PHP values (e.g. PHP arrays, stdClass objects, or custom classes via built-in ODM functionality). This eliminates a significant shortcoming of the legacy driver, where PHP arrays were used exclusively.

Driver

More information on these BSON improvements may be found in the following documentation:

Overview

The 1.0.0 release implements a brand new API and is a significant departure from our legacy driver. The new driver provides several new core classes:

  • MongoDBDriverManager (the client, which encapsulates one or more Servers)
  • MongoDBDriverServer (represents a single connection)
  • MongoDBDriverCursor (result of an executed command or query)
  • MongoDBDriverBulkWrite (mutable object for a batch of write operations)

Additionally, there are several new value objects:

  • MongoDBDriverCommand (command document)
  • MongoDBDriverQuery (query and options)
  • MongoDBDriverCursorId (64-bit cursor ID)
  • MongoDBDriverWriteResult (result of a bulk write operation)
  • MongoDBDriverWriteError (bulk write operations may yield multiple errors)

Mongodb Driver Download

BSON interfaces and classes may be found under the MongoDBBSON namespace.

Queries, commands, and write operations may be executed via the following methods on the MongoDBDriverManager class:

These methods also exist on the MongoDBDriverServer class, for lower-level control over exactly which server handles the operation.

Php Mongodb Driver Query

Changes from our legacy mongo extension

Most significantly, the legacy driver's MongoClient, MongoDB, and MongoCollection classes have been obsoleted by the MongoDBDriverManager class, which is the new gateway for connecting and executing queries, commands, and write operations.

Two significant behavioral changes between the legacy and new driver are:

  • Unlike MongoCursor in the legacy driver, which had pre- and post-executed states and could be rewound to re-execute a query, MongoDBDriverCursor always corresponds to results of an executed command or query and may only be iterated once.
  • The new driver unserializes BSON documents (both root and embedded) as stdClass objects by default (compared to PHP arrays in the legacy driver). This behavior may be customized via the setTypeMap() method on MongoDBDriverCursor and is discussed in more detail in the BSON persistence documentation.

Note: mongo-php-library does provide client, database, and collection classes, which resemble the like-named classes in our legacy driver; however, while these new classes are mostly equivalent, some command helper methods have not been reimplemented and public APIs in the library have changed to ensure compatibility with current specifications such as the CRUD API.

What is the status of the legacy mongo extension?

Php Install Mongodb Driver Manager Windows 10

The mongodb extension supersedes our legacy mongo extension.

We plan to continue supporting our existing mongo driver with critical bug fixes and maintenance releases; however, it will no longer be actively developed with new functionality (e.g. support for HHVM, PHP 7, or MongoDB 3.2).

Roadmap

We expect to add support for PHP 7 and MongoDB 3.2 in forthcoming 1.1.0 and 1.2.0 releases, respectively. Future development may be tracked in our public PHPC JIRA project.

In the more immediate future, you can expect 1.0.0 releases of mongo-hhvm-driver (currently available in as 1.0.0RC1) and mongo-php-library (currently 1.0.0-beta1), which are tracked in our HHVM and PHPLIB JIRA projects, respectively.

GridFS will be implemented entirely in our userland API and is planned for mongo-php-library 1.1.0.

MongodbSoftware

Documentation

Documentation for this extension is available on PHP.net:
http://php.net/set.mongodb

Additionally, the GitHub repository contains additional documentation on common use cases, such as executing queries, commands, and write operations:
http://mongodb.github.io/mongo-php-driver/

Feedback

We would appreciate any feedback you might have on the project:
https://jira.mongodb.org/secure/CreateIssue.jspa?pid=12484&issuetype=6

Installation

The extension may be installed via PECL:

If you've previously installed the extension, you may update it with:

Windows binaries are also available on PECL:
http://pecl.php.net/package/mongodb

🐘 Thanks

Driver

Thanks for everyone who contributed along the way to 1.0.0:

  • Remi Collet
  • Hannes Van De Vreken
  • serebro
  • Daniel Kozak
  • Christian Amor Kvalheim

Cheers,

Hannes Magnusson, Derick Rethans, and Jeremy Mikola

I installed mongodb with yum install -y mongodb-org

yum --enablerepo=remi,remi-php71 install php-pecl-mongo
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
* base: mirror.atlanticmetro.net
* epel: fedora-epel.mirrors.tds.net
* extras: mirror.atlanticmetro.net
* remi: repo1.ash.innoscale.net
* remi-php70: repo1.ash.innoscale.net
* remi-php71: repo1.ash.innoscale.net
* remi-safe: repo1.ash.innoscale.net
* updates: mirror.atlanticmetro.net
Resolving Dependencies
--> Running transaction check
---> Package php-pecl-mongo.x86_64 0:1.6.14-1.el7.remi.5.4 will be installed
--> Processing Dependency: php(zend-abi) = 20100525-64 for package: php-pecl-mongo-1.6.14-1.el7.remi.5.4.x86_64
--> Processing Dependency: php(api) = 20100412-64 for package: php-pecl-mongo-1.6.14-1.el7.remi.5.4.x86_64
--> Finished Dependency Resolution
Error: Package: php-pecl-mongo-1.6.14-1.el7.remi.5.4.x86_64 (remi)
Requires: php(zend-abi) = 20100525-64
Installed: php-common-7.1.3-1.el7.remi.x86_64 (@remi-php71)
php(zend-abi) = 20160303-64
Available: php-common-5.4.16-42.el7.x86_64 (base)
php(zend-abi) = 20100525-64
Available: php-common-5.4.45-13.el7.remi.x86_64 (remi)
php(zend-abi) = 20100525-64
Available: php-common-7.0.16-1.el7.remi.x86_64 (remi-php70)
php(zend-abi) = 20151012-64
Available: php-common-7.0.17-1.el7.remi.x86_64 (remi-php70)
php(zend-abi) = 20151012-64
Available: php-common-7.1.2-1.el7.remi.x86_64 (remi-php71)
php(zend-abi) = 20160303-64
Error: Package: php-pecl-mongo-1.6.14-1.el7.remi.5.4.x86_64 (remi)
Requires: php(api) = 20100412-64
Installed: php-common-7.1.3-1.el7.remi.x86_64 (@remi-php71)
php(api) = 20160303-64
Available: php-common-5.4.16-42.el7.x86_64 (base)
php(api) = 20100412-64
Available: php-common-5.4.45-13.el7.remi.x86_64 (remi)
php(api) = 20100412-64
Available: php-common-7.0.16-1.el7.remi.x86_64 (remi-php70)
php(api) = 20151012-64
Available: php-common-7.0.17-1.el7.remi.x86_64 (remi-php70)
php(api) = 20151012-64
Available: php-common-7.1.2-1.el7.remi.x86_64 (remi-php71)
php(api) = 20160303-64
You could try using --skip-broken to work around the problem
You could try running: rpm -Va --nofiles --nodigest

Mongodb Drivers

What am i doing wrong here