A few weeks ago I went to an event called #seedhack. I met a chap there called Russel Smith. He seemed to know quite a bit about MongoDB and was kind enough to sit down and spend a few hours with me, beating the benefits of not having a schema into my head.
I was dubious about becoming one of those NoSQL ‘wankers’ as my friend Tom refers to them as. So I decided to tread lightly.
Today, after two weeks of discussing what we want to do with the new internals of BallOfDirt.com I started using MongoDB. I thought I would document my progress so others might not fall into the same traps I did.
I am setting up a MongoDB instance on a Ubuntu server that has an existing apache2 and php5 instance installed. I typed the following in as root:
apt-get install mongodb-server apt-get install pecl sudo pecl install mongo vi /etc/php5/apache2/conf.d/mongo.ini I then put the following line in the file: extension=mongo.so
apache2ctl stop apache2ctl start
Quite simple really. I had played with MongoDB two weeks ago when Russel was showing me around, so I was able to dump the database I had using the following command:
mongodump -db tribe
It managed to make a number of directories and files under a local directory called dump. I then scp’d that over to the new server I was setting up and used the following command to import the dump.
It should be noted that you don’t have any concept of database of schema in MongoDB. They just sort of get created when you need them. (sounds fine to me)
To do the restore just sit above the dump directory and type:
That’s Mongo Restore incase you didn’t notice the ‘r’. It magically worked and I was then able to connect to the db from PHP5 (Under Apache – you need to do the conf.d/mongo.ini under cli if you want it to work from the command line) and read and write my data. Brilliant. How easy is that?!?!