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" );
$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
You can also check our Microservices post
Introduction to Microservices
Comments
Post a Comment