What is MongoDB?

In this article we are going to show you the basics of MongoDB, but first, what is MongoDB? Is a cross-platform document oriented and NoSQL database.

What does it mean?

MongoDB doesn’t implement the tranditional relational database structure, instead it uses a structure similar to JSON documents with dynamic schemas.

What is needed to connect to a MongoDB database from PHP?

  • A MongoDB database running.
  • The PHP Driver installed.

To install the PHP Driver:

If you want to install MongoDB for local development then I recommend  AMPPS as one of the easiest way to get your LAMP stack , which also includes MongoDB. http://ampps.com/downloads

Connecting to MongoDB from PHP

 

$host = 'localhost'; $port = '27017';   //or 28017, port might be different. 
$database = 'DB_Name_Here'; 
$username = 'User_Connecting_to_DB_Here'; 
$password = 'PASSWORD_HERE'; 
$connecting =  sprintf('mongodb://%s:%d/%s', $host, $port, $database); 
$mongo = new Mongo($connecting, array('username'=> $username, 'password'=> $password));

Selecting the database instance:

$db = $mongo->name_of_your_database_here

Note: No strings/quotes (“) needed around your database name.

How to create a collection? (what you know as tables in traditional relational databases)

$db->createCollection("collection_name_here");

Selecting the collection you are going to work with

$collection= $db->collection_name_here;

Note: No strings/quotes (“) needed around your collection name.

How to insert a document? (what you know as record in  traditional relational databases)

First we create an array.

Let’s say we want to insert a document with 2 columns, then:

$document = array(
"field_column_name_here" =>"valueHere",
 "second_field_column_name_here" =>"secondValueHere"
);

Then we insert it by doing:

$collection->insert($document);

*Is important to mention that MongoDB is Schemaless therefor we can have many documents with varying set of fields and with different types. Example:

$document = array(
"name" =>"Hugo",
 "lastname" =>"Rosa"
);

And then we could have another document with:

$document = array(
"name" =>"Hugo",
 "lastname" =>"Rosa",
 "company" =>"Developers Court Inc",
 "url"=>"www.developerscourt.com"
);

*MongoDB by default create an ID for each document. This id is defined as _id in each document.

How to find a document?

If you want to get all documents inside a collection then:

$data=$collection->find();

Let say we want to print all the name, then we loop by each one:

foreach($data as $doc)
 {
 echo $doc['name'] . "
"; }

To get a specific document:

$results = $collection->findOne(array('field_name_you_want_to_search'=>'value'));

We can also specify which columns we want in the results by adding another array with the name of the columns. Example:

$results = $collection->findOne(array('field_name_you_want_to_search'=>'value'),array('name','company'));

Now the results will include the _id , name and company columns.

If we want to search by using the _id column then:

$results = $collection->findOne(array('_id'=>new MongoId('document_id_value_here')));

How to update a document?

We first find the document we want to update.

$results = $collection->findOne(array('_id'=>new MongoId('document_id_value_here')));

Then we can directly change the values in the result array, like this:

$results['name'] = "Iron Man";

Finally, commit the changes:

 $collection->save($results);

Deleting a document from the collection

$toberemoved = array('name'=>'Iron Man');
$collection->remove($toberemoved ,array('safe'=>true));

In this article we have showed the basics of using MongoDB. If you liked this article, make sure you hit that share button. Subscribe and stay tune for more MongoDB.