I am trying to test out mongoDB and see if it is anything for me. I downloaded the 32bit windows version, but have no idea on how to continue from now on.
I normally use the WAMP services for developing on my local computer. Can i run mongoDB on Wamp?
However, what's the best (easiest!) way to make it work on windows?
Thanks!
Are you ready for the installation … and use … Technically, it’s not an installation it’s just Downloading…
I. Download the zip file http://www.mongodb.org/downloads
II. Extract it and copy the files into your desired location.
III. Start the DB engine.
IV. Test the installation and use it.
That's it! So simple, right? Ok let’s start
You will see a screen like this: I am using a windows 7 32 bit machine - that’s why I downloaded the package marked in red.
Click download (It only takes a few seconds).
Wow... I got that downloaded. It was a zipped file called mongodb-win32-i386-2.4.4.zip
(The name of the folder will change according to the version you download, here I got version 2.4.4).
OK all set.
Finished! That’s all
What we have to do next?
Let’s go and start using our mongo db...
Open up a command prompt, then navigate to bin
in the mongo folder
Type mongo.exe
(which is the command used to start mongo Db Power shell). Then see the below response..
That was an awesome exception J LOL … What is that?
Couldn’t connect to server.
Why did the exception happen? I have no idea... Did I create a server in between?
No.
Right, then how come it connected to a server in between? Silly Machine …Jz.
I got it! Like all other DBs - we have to start the DB engine before we use it.
So, how can we start it?
We have to start the mongo db by using the command mongod
. Execute this from the bin
folder of mongo.
Let’s see what had happened.
Again a wonderfully formatted exception J we got right? Did you notice what I have highlighted on top? Yeah it is the mongod command. The second one is the exception asking us to create a folder called data. And, inside the data folder, a folder called db
.
So we have to create these data\db
folders.
The next question is where to create these folders?
We have to create the data\db
folders in the C
drive of our BOX in which we are installing mongo. Let’s go and create the folder structure in C drive.
A question arises here: "Is it mandatory to create the data\db directories inside C?" Nooo, not really. Mongo looks in C
by default for this folder, but you can create them wherever you want. However, if it's not in C
, you have to tell mongo where it is.
In other words, if you don't want the mongo databases to be on C:\
, you have to set the db path for mongo.exe.
Ok, I will create those folders in some other location besides C
for better understanding of this option. I will create then in the D
drive root, with the help of cmd.
Why? Because it’s an opportunity for us to remember the old dos commands...
The next step is to set the Db path to mongo.exe.
Navigate back to bin
, and enter the command, mongod.exe --dbpath d:\data
.
I got the response below:
I Hope everything went well... Because I didn’t see any ERROR *** in the console J.
Next, we can go and start the db using the command start mongo.exe
I didn't see any error or warning messages. But, we have to supply a command to make sure mongo is up and running, i.e. mongod will get a response:
Hope everything went well.
Now we have to see our DB right? Yea very much, Otherwise how will we know it’s running?
For testing purpose MONGO has got a DB called test
by default. Lets go query that.
But how without any management studios? Unlike SQL, we have to depend on the command prompt. Yes exactly the same command prompt… our good old command prompt… Heiiiii.. Don’t get afraid yes it’s our old command prompt only. Ok let’s go and see how we are going to use it…
Ohhh Nooo… don’t close the above Command prompt, leave it as it is…
Open a new cmd window.
Navigate to Bin as usual we do…
I am sure you people may be remembering the old C programming which we have done on our college day’s right?
In the command prompt, execute the command mongo
or mongo.exe
again and see what happens.
You will get a screen as shown below:
I mentioned before that Mongo has got a test db by default called test
, try inserting a record into it.
The next question here is "How will we insert?" Does mongo have SQL commands? No, mongo has got only commands to help with.
The basic command to insert is
db.test.save( { KodothTestField: ‘My name is Kodoth’ } )
Where test
is the DB and .save
is the insert command. KodothTestField
is the column or field name, and My name is Kodoth
is the value.
Before talking more let’s check whether it’s stored or not by performing another command: db.test.find()
Our Data got successfully inserted … Hurrayyyyyy..
I know that you are thinking about the number which is displayed with every record right called ObjectId. It’s like a unique id field in SQL that auto-increments and all. Have a closer look you can see that the Object Id ends with 92, so it’s different for each and every record.
At last we are successful in installing and verifying the MONGO right. Let’s have a party... So do you agree now MONGO is as Sweet as MANGO?
Also we have 3rd party tools to explore the MONGO. One is called MONGO VUE. Using this tool we can perform operations against the mongo DB like we use Management studio for SQL Server.
Can you just imagine an SQL server or Oracle Db with entirely different rows in same table? Is it possible in our relational DB table? This is how mongo works. I will show you how we can do that…
First I will show you how the data will look in a relational DB.
For example consider an Employee table and a Student table in relational way. The schemas would be entirely different right? Yes exactly…
Let us now see how it will look in Mongo DB. The above two tables are combined into single Collection in Mongo…
This is how Collections are stored in Mongo. I think now you can feel the difference really right? Every thing came under a single umbrella. This is not the right way but I just wanted to show you all how this happens that’s why I combined 2 entirely different tables in to one single Collection.
If you want to try out you can use below test scripts
***********************
TEST INSERT SCRIPT
*********EMPLOYEE******
db.test.save( { EmployeId: "1", EmployeFirstName: "Kodoth", EmployeLastName:"KodothLast", EmployeAge:"14" } )
db.test.save( { EmployeId: "2", EmployeFirstName: "Kodoth 2", EmployeLastName:"Kodoth Last2", EmployeAge:"14" } )
db.test.save( { EmployeId: "3", EmployeFirstName: "Kodoth 3", EmployeLastName:"Kodoth Last3", EmployeAge:"14" } )
******STUDENT******
db.test.save( { StudentId: "1", StudentName: "StudentName", StudentMark:"25" } )
db.test.save( { StudentId: "2", StudentName: "StudentName 2", StudentMark:"26" } )
db.test.save( {StudentId: "3", StudentName: "StudentName 3", StudentMark:"27"} )
************************
Thanks