MongoDB Tutorial for Beginners
In this example we will try to understand what is MongoDb
and explain the basic operations in the NoSql Database
.
1. Introduction
MongoDb is a highly scalable, Document
based NoSQL Database written in C++
. Document based NoSQL databases work on map-like concept of KEY VALUE pairs. The key being uniquely identifiable property like a String, path etc and the value being the Document
that is to be saved. Another example of Document based NoSQL is Apache CouchDB.
The one difference in document based database and other key value based NoSQL database is that, the document stored in the form of value also exposes its metadata to the query engine. Hence, we can query the document based on the meta-data of the document saved as values. We will demonstrate this a little latter.
2. Installation
Let’s start with the download and installation of MongoDB. Installation files for MongoDB can be downloaded from here. Install the MongoDB server as per the instructions provided with the installation files.
3. Demonstration
3.1 Start the MongoDB server
To start the server issue the following command from the {MongoDbHome}/Server/{MongoDB-Version}/bin directory:
mongod.exe --dbpath C:\MongoDb\Data
--dbpath
option specifies the location of MongoDB repository.
Now that the Database is up and running let’s look at a few basic commands :
3.2 Create a Collection
A collection is what is closest to a RDBMS
table. It hosts a number of MongoDBDocuments
. Let’s try creating a New Collection :
db.createCollection("person")
Here’s the output :
3.3 Insert a Document
The rows
in a RDBMS
table is what is Document
in a MongoDB Collection
. However, unlike RDBMS, the Collection need not have fixed columnar data structure. Different documents may have different set of columns. The general syntax to insert a column into a document is :
db.collectionName.insert({type:value});
Let’s try to insert some Documents
into the Person
collection and checkout the output:
3.4 Update a Document
Let’s update some of the existing documents. General Update Syntax:
db.collectionName.update({{type:value}},{$set:{{type:NewValue}}},{multi:true|false})
Setting the multi
to true
or false
is to indicate if multiple records are to be updated (if matching) or not.
Here’s the output:
3.5 Delete a Document
Let’s delete some documents
from the Person
Collection. Here is the syntax for that:
db.collectionName.remove({type:value});
Here’s the output for the same:
3.6 Query a Collection
To display all the documents in the Collection :
db.collectionName.find()
To display the documents based on some matching conditions, like WHERE
clause in SQL
db.collectionName.find({type:value});
Here is the sample of a query command :
Multiple AND
conditions can be declared by separating them with ,
operator.
e.g.:
db.person.find({'_id':'2','type':'KeyPad'});
Similarly, OR
Operator can also be used :
db.person.find({ $or: [ { '_id':'2' }, { 'type':'random_type' } ] });
3.7 Logical Operators in MongoDb
In section 3.6 we saw how we can use equal to
operator. But in a real application scenario we need more logical operators like less than
greater than
Not equal to
etc when querying a Collection.
Let’s see how we can use those operators:
Not Equal to:
db.person.find({'_id':{$ne:'0'}})
Greater Than:
db.person.find({'_id':{$gt:'0'}})
Less Than:
db.person.find({'_id':{$lt:'0'}})
Greater Than Equal to :
db.person.find({'_id':{$gte:'0'}})
Less Than Equal to:
db.person.find({'_id':{$lte:'0'}})
Here’s a sample output of the Greater than query:
3.8 Sorting and limiting the Query Results
Let’s see how we can sort and limit the number of records returned by a query same as in SQL. Syntax to Sort records in MongoDB:
db.collectionName.find({type:value}).sort({'column':1|-1});
Here is the screenshot of different ways in which a query result from find()
can be sorted or reverse-sorted by passing 1
or -1
respectively:
Syntax to limit number of records returned by a query :
db.collectionName.limit(value);
This will limit the number of records returned by the query to the value
passed in the limit()
method.
3.9 Drop the Collection
Here the syntax to drop the collection:
db.collectionName.drop();
And the output:
4. Conclusion
Here we studied what is MongoDB in brief and the basic operations supported by it.
- The reader is also suggested to read MongoDB with Spring Data