Intro To MongoDB
Intro To MongoDB
Database
Database is a physical container for collections. Each database gets its own
set of files on the file system. A single MongoDB server typically has
multiple databases.
Collection
Collection is a group of MongoDB documents. It is the equivalent of an
RDBMS table. A collection exists within a single database. Collections do not
enforce a schema. Documents within a collection can have different fields.
Typically, all documents in a collection are of similar or related purpose.
Document
A document is a set of key-value pairs. Documents have dynamic schema.
Dynamic schema means that documents in the same collection do not need
to have the same set of fields or structure, and common fields in a
collection's documents may hold different types of data.
The following table shows the relationship of RDBMS terminology with
MongoDB.
RDBMS MongoDB
Database Database
Table Collection
Tuple/Row Document
column Field
Mysqld/Oracle mongod
mysql/sqlplus mongo
Sample Document
Following example shows the document structure of a blog site, which is
simply a comma separated key value pair.
{
_id: ObjectId(7df78ad8902c)
url: 'http://www.tutorialspoint.com',
likes: 100,
comments: [
user:'user1',
like: 0
},
user:'user2',
like: 5
MongoDB - Advantages
Any relational database has a typical schema design that shows number of
tables and the relationship between these tables. While in MongoDB, there
is no concept of relationship.
No complex joins.
Deep query-ability. MongoDB supports dynamic queries on documents using a document-based query language that's
nearly as powerful as SQL.
Tuning.
Uses internal memory for storing the (windowed) working set, enabling faster access of data.
Auto-sharding
Rich queries
Data Hub
MongoDB - Environment
Let us now see how to install MongoDB on Windows.
32-bit versions of MongoDB only support databases smaller than 2GB and
suitable only for testing and evaluation purposes.
Now extract your downloaded file to c:\ drive or any other location. Make
sure the name of the extracted folder is mongodb-win32-i386-[version] or
mongodb-win32-x86_64-[version]. Here [version] is the version of
MongoDB download.
Next, open the command prompt and run the following command.
C:\>move mongodb-win64-* mongodb
1 dir(s) moved.
C:\>
If you have to install the MongoDB at a different location, then you need to
specify an alternate path for \data\db by setting the
path dbpath in mongod.exe. For the same, issue the following
commands.
In the command prompt, navigate to the bin directory present in the
MongoDB installation folder. Suppose my installation folder is D:\set
up\mongodb
C:\Users\XYZ>d:
D:\>cd "set up"
D:\set up>cd mongodb
D:\set up\mongodb>cd bin
D:\set up\mongodb\bin>mongod.exe --dbpath "d:\set up\mongodb\data"
This will show waiting for connections message on the console output,
which indicates that the mongod.exe process is running successfully.
Now to run the MongoDB, you need to open another command prompt and
issue the following command.
D:\set up\mongodb\bin>mongo.exe
MongoDB shell version: 2.4.6
connecting to: test
>db.test.save( { a: 1 } )
>db.test.find()
{ "_id" : ObjectId(5879b0f65a56a454), "a" : 1 }
>
This will show that MongoDB is installed and run successfully. Next time
when you run MongoDB, you need to issue only commands.
D:\set up\mongodb\bin>mongod.exe --dbpath "d:\set up\mongodb\data"
D:\set up\mongodb\bin>mongo.exe
MongoDB - Create Database
In this chapter, we will see how to create a database in MongoDB.
Syntax
Basic syntax of use DATABASE statement is as follows −
use DATABASE_NAME
Example
If you want to use a database with name <mydb>, then use
DATABASEstatement would be as follows −
>use mydb
switched to db mydb
If you want to check your databases list, use the command show dbs.
>show dbs
local 0.78125GB
test 0.23012GB
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB
Syntax
Basic syntax of dropDatabase() command is as follows −
db.dropDatabase()
This will delete the selected database. If you have not selected any
database, then it will delete default 'test' database.
Example
First, check the list of available databases by using the command, show
dbs.
>show dbs
local 0.78125GB
mydb 0.23012GB
test 0.23012GB
>
>use mydb
switched to db mydb
>db.dropDatabase()
>
>show dbs
local 0.78125GB
test 0.23012GB
>
Syntax
Basic syntax of createCollection() command is as follows −
db.createCollection(name, options)
Options parameter is optional, so you need to specify only the name of the
collection. Following is the list of options you can use −
While inserting the document, MongoDB first checks size field of capped
collection, then it checks max field.
Examples
Basic syntax of createCollection() method without options is as follows −
>use test
switched to db test
>db.createCollection("mycollection")
{ "ok" : 1 }
>
You can check the created collection by using the command show
collections.
>show collections
mycollection
system.indexes
{ "ok" : 1 }
>
In MongoDB, you don't need to create collection. MongoDB creates
collection automatically, when you insert some document.
>db.tutorialspoint.insert({"name" : "tutorialspoint"})
>show collections
mycol
mycollection
system.indexes
tutorialspoint
>
Syntax
Basic syntax of drop() command is as follows −
db.COLLECTION_NAME.drop()
Example
First, check the available collections into your database mydb.
>use mydb
switched to db mydb
>show collections
mycol
mycollection
system.indexes
tutorialspoint
>
>db.mycollection.drop()
true
>
>show collections
mycol
system.indexes
tutorialspoint
>
MongoDB - Datatypes
MongoDB supports many datatypes. Some of them are −
String − This is the most commonly used datatype to store the data. String in
MongoDB must be UTF-8 valid.
Integer − This type is used to store a numerical value. Integer can be 32 bit or
64 bit depending upon your server.
Min/ Max keys − This type is used to compare a value against the lowest and
highest BSON elements.
Arrays − This type is used to store arrays or list or multiple values into one
key.
Date − This datatype is used to store the current date or time in UNIX time
format. You can specify your own date time by creating object of Date and
passing day, month, year into it.
Code − This datatype is used to store JavaScript code into the document.
Syntax
The basic syntax of insert() command is as follows −
>db.COLLECTION_NAME.insert(document)
Example
>db.mycol.insert({
_id: ObjectId(7df78ad8902c),
url: 'http://www.tutorialspoint.com',
tags: ['mongodb', 'database', 'NoSQL'],
likes: 100
})
Example
>db.post.insert([
url: 'http://www.tutorialspoint.com',
likes: 100
},
likes: 20,
comments: [
user:'user1',
like: 0
])