Khóa học miễn phí PHP & MongoDB – Quick Guide nhận dự án làm có lương

PHP & MongoDB – Quick Guide



PHP & MongoDB – Overview

PHP developer team has provided MongoDB Driver for PHP and have various resources available for it.

First step in connecting to MongoDB using PHP is to have mongodb PHP driver dll in php ext directory and enable it in php.ini and then use mongodb API to connect to the database.

Connecting to MongoDB database

Suppose, MongoDB is installed locally and using default port then following syntax connects to MongoDB database.

$manager = new MongoDBDriverManager("mongodb://localhost:27017");

MongoDB Driver Manager is the central class to do all the operations on mongodb database. To connect to mongodb database, we connect to database by first preparing a command and then executing it.

$statistics = new MongoDBDriverCommand(["dbstats" => 1]);
$cursor = $manager->executeCommand("mydb", $statistics);

Once command is executed, if mydb database is not present, it will be created otherwise, it will be connected.

PHP & MongoDB – Environment Setup

Install MongoDB database

Follow the MongoDB installation steps using

Install PHP

Follow the PHP installation steps using

PHP MongoDB Driver

To use MongoDB with PHP, you need to use MongoDB PHP driver. Download the driver from the url . Make sure to download the latest release of it. Now unzip the archive and put php_mongo.dll in your PHP extension directory (“ext” by default) and add the following line to your php.ini file −

extension = php_mongo.dll

In case of Windows, make sure libsasl.dll is in the windows”s PATH. This dll is available in PHP installation directory.

PHP & MongoDB – Connecting Database

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a command on a database if the database doesn”t exist then MongoDB creates it automatically.

// Create a Command Instance
$statistics = new MongoDBDriverCommand(["dbstats" => 1]);

// Execute the command on the database
$cursor = $manager->executeCommand("myDb", $statistics);

Example

Try the following example to connect to a MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      echo "Connection to database successfully";
      $statistics = new MongoDBDriverCommand(["dbstats" => 1]);
      $cursor = $manager->executeCommand("myDb", $statistics);
      $statistics = current($cursor->toArray());
      echo "<pre>"; 
      print_r($statistics); 
      echo "</pre>";
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Connection to database successfully
stdClass Object
(
   [db] => myDb
   [collections] => 0
   [views] => 0
   [objects] => 0
   [avgObjSize] => 0
   [dataSize] => 0
   [storageSize] => 0
   [totalSize] => 0
   [indexes] => 0
   [indexSize] => 0
   [scaleFactor] => 1
   [fileSize] => 0
   [fsUsedSize] => 0
   [fsTotalSize] => 0
   [ok] => 1
)

PHP & MongoDB – Show Databases

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a command on a database to show the list of databases available.

// Create a Command Instance
$databaseList = new MongoDBDriverCommand(["listDatabases" => 1]);

// Execute the command on the database
$cursor = $manager->executeCommand("admin", $databaseList);

Example

Try the following example to list databases available by default in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      // Create a Command Instance
      $databaseList = new MongoDBDriverCommand(["listDatabases" => 1]);

      // Execute the command on the database
      $cursor = $manager->executeCommand("admin", $databaseList);
   
      $databases = current($cursor->toArray());
   
      foreach ($databases->databases as $database) {    
         echo $database->name . "<br/>";
      }
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

admin
config
local

PHP & MongoDB – Drop Database

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a command to drop the database.

// Create a Command Instance
$dropDatabase = new MongoDBDriverCommand(["dropDatabase" => 1]);

// Execute the command on the database
$cursor = $manager->executeCommand("myDb", $dropDatabase);

Example

Try the following example to delete a database in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      // Create a Command Instance
      $dropDatabase = new MongoDBDriverCommand(["dropDatabase" => 1]);

      // Execute the command on the database
      $cursor = $manager->executeCommand("myDb", $dropDatabase);
   
      echo "Database dropped."
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Database dropped.

PHP & MongoDB – Create Collection

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a command to create the collection.

// Create a Command Instance
$createCollection = new MongoDBDriverCommand(["create" => "sampleCollection"]);

// Execute the command on the database
$cursor = $manager->executeCommand("myDb", $createCollection);

Example

Try the following example to create a collection in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      // Create a Command Instance
      $createCollection = new MongoDBDriverCommand(["create" => "sampleCollection"]);

      // Execute the command on the database
      $cursor = $manager->executeCommand("myDb", $createCollection);
   
      echo "Collection created.";
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Collection created.

PHP & MongoDB – Drop Collection

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a command to drop the collection.

// Create a Command Instance
$createCollection = new MongoDBDriverCommand(["drop" => "sampleCollection"]);

// Execute the command on the database
$cursor = $manager->executeCommand("myDb", $createCollection);

Example

Try the following example to drop a collection in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      // Create a Command Instance
      $dropCollection = new MongoDBDriverCommand(["drop" => "sampleCollection"]);

      // Execute the command on the database
      $cursor = $manager->executeCommand("myDb", $dropCollection);
   
      echo "Collection dropped."
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Collection dropped.

PHP & MongoDB – Display Collections

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a command on a database to show the list of collections available.

// Create a Command Instance
$collectionList = new MongoDBDriverCommand(["listCollections" => 1]);

// Execute the command on the database
$cursor = $manager->executeCommand("myDb", $collectionList);

Example

Try the following example to list collections of a database in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      // Create a Command Instance
      $collectionList = new MongoDBDriverCommand(["listCollections" => 1]);

      // Execute the command on the database
      $cursor = $manager->executeCommand("myDb", $collectionList);
   
      $collections = $cursor->toArray();
   
      foreach ($collections as $collection) {    
         echo $collection->name . "<br/>";
      }
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

sampleCollection

PHP & MongoDB – Insert Document

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a bulkWrite object to insert record(s) in the collection.

// Create a BulkWrite Object
$bulk = new MongoDBDriverBulkWrite([''ordered'' => true]);

$bulk->insert([''First_Name'' => "Mahesh", 
	''Last_Name'' => ''Parashar'', 
	''Date_Of_Birth'' => ''1990-08-21'',
	''e_mail'' => ''mahesh_parashar.123@gmail.com'',
	''phone'' => ''9034343345'']);

// Execute the commands.
$result = $manager->executeBulkWrite(''myDb.sampleCollection'', $bulk);

Example

Try the following example to insert documents in a collection in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      $bulk = new MongoDBDriverBulkWrite([''ordered'' => true]);

      $bulk->insert([''First_Name'' => "Mahesh", 
         ''Last_Name'' => ''Parashar'', 
         ''Date_Of_Birth'' => ''1990-08-21'',
         ''e_mail'' => ''mahesh_parashar.123@gmail.com'',
         ''phone'' => ''9034343345'']);

      $bulk->insert([''First_Name'' => "Radhika", 
         ''Last_Name'' => ''Sharma'', 
         ''Date_Of_Birth'' => ''1995-09-26'',
         ''e_mail'' => ''radhika_sharma.123@gmail.com'',
         ''phone'' => ''9000012345'']);	

      $bulk->insert([''First_Name'' => "Rachel", 
         ''Last_Name'' => ''Christopher'', 
         ''Date_Of_Birth'' => ''1990-02-16'',
         ''e_mail'' => ''rachel_christopher.123@gmail.com'',
         ''phone'' => ''9000054321'']);

      $bulk->insert([''First_Name'' => "Fathima", 
         ''Last_Name'' => ''Sheik'', 
         ''Date_Of_Birth'' => ''1990-02-16'',
         ''e_mail'' => ''fathima_sheik.123@gmail.com'',
         ''phone'' => ''9000012345'']);

      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      $result = $manager->executeBulkWrite(''myDb.sampleCollection'', $bulk);

      printf("Inserted %d document(s).n", $result->getInsertedCount());
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Inserted 4 document(s).

PHP & MongoDB – Select Document

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a Query object to select record(s) in the collection.

// Create a Query Object
$query = new MongoDBDriverQuery([''First_Name'' => "Radhika"]);

// Execute the query
$rows = $manager->executeQuery("testdb.sampleCollection", $query);

Example

Try the following example to select a document in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      $filter = [];

      // Create a Query Object
      $query = new MongoDBDriverQuery($filter);

      // Execute the query
      $rows = $manager->executeQuery("myDb.sampleCollection", $query);

      foreach ($rows as $row) {  
         printf("First Name: %s, Last Name: %s.<br/>", $row->First_Name, $row->Last_Name);   
      }
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

First Name: Radhika, Last Name: Sharma.
First Name: Rachel, Last Name: Christopher.
First Name: Fathima, Last Name: Sheik.

PHP & MongoDB – Update Document

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a bulkWrite object to update record(s) in the collection.

// Create a BulkWrite Object
$bulk = new MongoDBDriverBulkWrite([''ordered'' => true]);

$bulk->update([''First_Name'' => "Mahesh"],[''$set'' => [''e_mail'' => ''maheshparashar@gmail.com'']]);

// Execute the commands.
$result = $manager->executeBulkWrite(''myDb.sampleCollection'', $bulk);

Example

Try the following example to update a document in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      $bulk = new MongoDBDriverBulkWrite([''ordered'' => true]);

      $bulk->update([''First_Name'' => "Mahesh"],[''$set'' => [''e_mail'' => ''maheshparashar@gmail.com'']]);

      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      $result = $manager->executeBulkWrite(''myDb.sampleCollection'', $bulk);

      printf("Updated %d document(s).n", $result->getModifiedCount());
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Updated 1 document(s).

PHP & MongoDB – Delete Document

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a bulkWrite object to delete record(s) in the collection.

// Create a BulkWrite Object
$bulk = new MongoDBDriverBulkWrite([''ordered'' => true]);

$bulk->delete([''First_Name'' => "Mahesh"]);

// Execute the commands.
$result = $manager->executeBulkWrite(''myDb.sampleCollection'', $bulk);

Example

Try the following example to delete a document of a collection in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      $bulk = new MongoDBDriverBulkWrite([''ordered'' => true]);

      $bulk->delete([''First_Name'' => "Mahesh"]);

      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      $result = $manager->executeBulkWrite(''myDb.sampleCollection'', $bulk);

      echo "Document deleted."
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Document deleted.

PHP & MongoDB – Insert Embedded Documents

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a bulkWrite object to insert record(s) with embedded documents in the collection.

// Create a BulkWrite Object
$bulk = new MongoDBDriverBulkWrite([''ordered'' => true]);

$bulk->insert([''title'' => "MongoDB Overview", 
   ''description'' => ''MongoDB is no SQL database'', 
   ''by'' => ''tutorials point'',
   ''url'' => ''http://www.tutorialspoint.com'',
   ''comments'' => [
      [''user'' => "user1", ''message'' => "My First Comment", ''dateCreated'' => "20/2/2020", ''like'' => 0],
      [''user'' => "user2", ''message'' => "My Second Comment", ''dateCreated'' => "20/2/2020", ''like'' => 0],
   ]]);

// Execute the commands.
$result = $manager->executeBulkWrite(''myDb.sampleCollection'', $bulk);

Example

Try the following example to insert document with embedded documents in a collection in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
	  // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");
	  
      $bulk = new MongoDBDriverBulkWrite([''ordered'' => true]);

      $bulk->insert([''title'' => "MongoDB Overview", 
         ''description'' => ''MongoDB is no SQL database'', 
         ''by'' => ''tutorials point'',
         ''url'' => ''http://www.tutorialspoint.com'',
         ''comments'' => [
		 [''user'' => "user1", ''message'' => "My First Comment", ''dateCreated'' => "20/2/2020", ''like'' => 0],
		 [''user'' => "user2", ''message'' => "My Second Comment", ''dateCreated'' => "20/2/2020", ''like'' => 0],
		 ]]);

      $result = $manager->executeBulkWrite(''myDb.sampleCollection'', $bulk);

      printf("Inserted %d document(s).n", $result->getInsertedCount());
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Inserted 1 document(s).

PHP & MongoDB – Error Handling

MongoDB driver operations throws exceptions in case of any database operations and can be captured easily using following syntax:

try {

} catch (MongoDBDriverExceptionException $e) {	   
   echo "Exception:", $e->getMessage(), "<br/>";
   echo "File:", $e->getFile(), "<br/>";
   echo "Line:", $e->getLine(), "<br/>";    
}

Example

Try the following example to check database operation error in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
	  // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");
	   
      // Create a Command Instance
      $createCollection = new MongoDBDriverCommand(["create" => "sampleCollection"]);

      // Execute the command on the database
      $cursor = $manager->executeCommand("myDb", $createCollection);
   
      echo "Collection created.";
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "<br/>";
      echo "File:", $e->getFile(), "<br/>";
      echo "Line:", $e->getLine(), "<br/>";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

Exception:Collection already exists. NS: myDb.sampleCollection
File: htdocsphp_mongodbmongodb_example.php
Line:10

PHP & MongoDB – Limit Records

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a Query object to record(s) in the collection and pass it filters and options to limit search results.

$filter = [];
$options = [''limit'' => 1];
// Create a Query Object
$query = new MongoDBDriverQuery($filter, $options);

// Execute the query
$rows = $manager->executeQuery("testdb.sampleCollection", $query);

Example

Try the following example to limit search results in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      $filter = [];
	  $options = [''limit'' => 1];

      // Create a Query Object
      $query = new MongoDBDriverQuery($filter, $options);

      // Execute the query
      $rows = $manager->executeQuery("myDb.sampleCollection", $query);

      foreach ($rows as $row) {  
         printf("First Name: %s, Last Name: %s.<br/>", $row->First_Name, $row->Last_Name);   
      }
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

First Name: Radhika, Last Name: Sharma.

PHP & MongoDB – Sorting Records

First step to do any operation is to create a Manager instance.

// Connect to MongoDB using Manager Instance
$manager = new MongoDBDriverManager("mongodb://localhost:27017");

Second step is to prepare and execute a Query object to select record(s) in the collection and pass it filters and options to sort the records.

$filter = [];

// Sort in Descending Order, For ascending order pass 1
$options = [''sort'' => [''First_Name'' => -1]];
// Create a Query Object
$query = new MongoDBDriverQuery($filter, $options);

// Execute the query
$rows = $manager->executeQuery("testdb.sampleCollection", $query);

Example

Try the following example to limit search results in MongoDB server −

Copy and paste the following example as mongodb_example.php −

<?php
   try {
      // connect to mongodb
      $manager = new MongoDBDriverManager("mongodb://localhost:27017");

      $filter = [];
      $options = [''limit'' => 3, ''sort'' => [''First_Name'' => -1]];

      // Create a Query Object
      $query = new MongoDBDriverQuery($filter, $options);

      // Execute the query
      $rows = $manager->executeQuery("myDb.sampleCollection", $query);

      foreach ($rows as $row) {  
         printf("First Name: %s, Last Name: %s.<br/>", $row->First_Name, $row->Last_Name);   
      }
   } catch (MongoDBDriverExceptionException $e) {	   
      echo "Exception:", $e->getMessage(), "n";
   }
?>

Output

Access the mongodb_example.php deployed on apache web server and verify the output.

First Name: Radhika, Last Name: Sharma.
First Name: Rachel, Last Name: Christopher.
First Name: Fathima, Last Name: Sheik.

Khóa học lập trình tại Toidayhoc vừa học vừa làm dự án vừa nhận lương: Khóa học lập trình nhận lương tại trung tâm Toidayhoc