Skip to main content

MongoDB with PHP – Configuration and Examples




So, in previous posts, we have seen What is MongoDB and how we can perform CRUD operation on MongoDB

So, moving ahead, lets learn how to use MongoDB with PHP. 

By default, PHP assumes you will be using MySQL, so till now it doesn’t support MongoDB. But we can add the Mongo DB support to our existing PHP.

On Windows

Go to the link, download the suitable version of zip. This zip contains the dll for mongo you will be using.
Just unzip the zip file, and select the appropriate version of the dll(for ex, if you are using php 5.3.13 and you have downloaded the php_mongo-1.4.5.zip  , on 32-bit systems, you needs to use the php_mongo-1.4.5-5.3-vc9.dll from the zip.  So select the appropriate version as per 32/ 64 bit and your PHP version.
Then just rename the dll file to php_mongo.dll and paste it to your php extensions directory.(ext by default).
Then open your php.ini file, add the line 
 
extension=php_mongo.dll

and restart your server. To verify, whether mongo is setup or not, just open localhost and cllck phpinfo() and search for “mongo” section. If its there, means you are done with configuration and you can move ahead to the coding part.

For  Linux users,  two commands needs to be run from terminal

sudo apt-get install php5-dev php5-cli php-pear 
sudo pecl install mongo  
Then in php.ini  file, add the line
extension=mongo.so  

and restart your server. To verify, whether mongo is setup or not, just open localhost and cllck phpinfo() and search for “mongo” section. If its there, means you are done with configuration and you can move ahead to the coding part.


Once the configuration is done, lets get into the second part- examples.

Note : Before moving ahead make sure you have running MongoDB server(mongod)

         Creating a connection


$con = new MongoClient(); // connects to localhost:27017

If you want to connect to some remote host on 27017 port
$con = new MongoClient( "mongodb://remotehost.com" ); 

If you want to connect to some remote host on any port (say 34567)
$con = new MongoClient( "mongodb://remotehost.com:34567" ); 

         Making the database connection(Say db name : learn and collection name :users)

<?php
$con = new MongoClient();

// Connecting to the database
$db = $connection->learn;

// Getting the Collection
$collection = $db->users;
?>

c       Making database query

1 ) Insert Query
$query = array (
        'name' => 'ankit bansal',
        'age' => 24,
        'hobby' => 'music'
);
 $collection->insert($query);
This will insert the document in collection users
2)  Select Query(find() and findOne())
Using findOne()

$document = $collection->findOne();
foreach ( $document as $key => $value )
{
                        echo $key. "=>" .$value. "<br />";           
}
As we know, findOne() returns a single doc, it can be iterate using foreach
Using find()
$cursor = $collection->find();
foreach ( $cursor as $key => $value )
{
        echo "********************************************************<br />";
        foreach ($value as $key1 =>$value1)
        {
                        echo $key1. "=>" .$value1. "<br />";
        }
       
}
As we know find returns an cursor, with lots of documents, it can be considered as an array of documents. So it cann be iterate using two nested foreach loops.

Using where clause in find()

$query = array('age' => 35);
$cursor = $collection->find($query);
foreach ( $cursor as $key => $value )
{
        echo "********************************************************<br />";
        foreach ($value as $key1 =>$value1)
        {
                        echo $key1. "=>" .$value1. "<br />";
        }
       
}

For the where clause(search based on condition), just create  the array for search and pass it to find().
To count the number of records returned,
$cursor = $collection->find($query)->count();

3) Update Query
$query = array(
        "age" => 23
);

$update = array(
                        '$set' => array(
                                                        "name" => "Ashish Gupta"
                        )
        );

$collection->update($query,$update);

Note :  use $set with single quotes only not with double quotes as if double quotes are used, PHP will considered it as an PHP variable and will give the error.

4) Delete Query
$query = array(
                "age" => 23
);

$collection->remove($query);

That’s it.

If the above concept is clear, you can perform any task using MongoDB in PHP.

  Download the complete examples        

You can also check our Microservices post
Introduction to Microservices


Comments

Popular posts from this blog

Login with Google Account using PHP / Javascript using OAuth2.0

Login with Google Account using PHP with code This post have Complete Code for Login / Sign-in  with google Account  using PHP / Javascript with oAuth2.0 Basically today we have seen almost every website needs you to register yourself before you can post or take part in any discussions to the website. But it become a tedious task to register and login to many different sites. Solution is to provide the users the option to Login with existing Google / Facebook account as almost everyone have Facebook and Google account.. In this post, I am going to explain how to integrate the Google Login / Sign in  for your website. For this,  First you need to create your Client ID, Client Secret and your developer API key. For this go to https://developers.google.com/identity/sign-in/web/sign-in Click on the button Create Project. A new window will open up. Please select Create Project / or select already created Project. It will then ask for about type ...

How To Set Up Apache Virtual Hosts on Ubuntu

How to setup Virtual Host in Ubuntu 16 / Ubuntu 18 on localhost / local machine To run the website with host on localhost(With LAMP) becomes important in many cases. This blog post will demonstrate how to achieve this. Assuming you have LAMP already installed and reading the code from (/var/www/html) Follow the simple steps below Create the code base To Create the code, simply create a directory named localweb inside /var/www/html. Create a file index.php inside localweb directory Content of index.php file <?php  echo "Local Website"; ?> Now our code base is set, so we need to configure apache Go to apache directory cd  /etc/apache2/sites-available/ Create one file named localweb.conf with content <Directory /var/www/html/localweb/>     AllowOverride All </Directory> <VirtualHost *:80>     ServerAdmin admin@localweb.com     ServerName localweb.com   ...

ORCAM - Blind can read too.!!

ORCAM: The technology that was developed mainly with the aim – to help to help the visually impaired and blind regain the functionalities that were lost. Yeah. So now even visually impaired guys can get to know even the smallest written things just by pointing towards them, like the reading the book. Yes. Even those who are completely blind, can even read a book using ORCAM. SO what actually is ORCAM.????? A visual system with human like performance to help visually impaired people Here is a look towards ORCAM-See for yourself Search Results It is a simple device with a camera and earphone   that fits in the simple glasses   and uses the Text-to-speech technology to read the objects and sends the user in the voice format with the help of the earphone. The   OrCam device is able to identify thousands of objects, including the faces of loved ones, dogs, buses, newspaper text and store signs, all with the point o...