You are on page 1of 17

Full Stack Development

(IT432)

Anju Mishra
Department of Information Technology

1
Module III- Introduction to MongoDB

Topic Name- Document , Collection, Database and data types

Subtopic Name: Document , Collection, Database and data types

Learning Objectives: To understand the concept of MongoDB Document , Collection, Database and data types
Learning Outcomes: Students will be able to recognize various MongoDB Document , Collection, Database
and data types

2
Outline
 Document
 Collection
 Database
 Data Types
 MongoDB Shell
 Need
 Basic Operations
Q & A

3
MongoDB - Documents
 At the heart of MongoDB is the document, It is an ordered set of keys with
associated values. Represented via data structure that is a natural fit, such as a map,
hash, or dictionary
 In JavaScript, for example, documents are represented as objects:

{"greeting" : "Hello, world!"}

 This simple document contains a single key, "greeting", with a value of "Hello,
world!“

{"greeting" : "Hello, world!", "foo" : 3}

 In this example the value for "greeting" is a string, whereas the value for "foo" is an
integer 4
MongoDB - Documents – continues…
 The keys in a document are strings. Any UTF-8 character is allowed in a key, with a
few notable exceptions:

• Keys must not contain the character \0 (the null character). This character is used
to signify the end of a key.
• The . and $ characters have some special properties and should be used only in
certain circumstances.

 MongoDB is type-sensitive and case-sensitive. For example, these documents are


distinct:
{"foo" : 3} {"foo" : "3"} and {"foo" : 3} {"Foo" : 3}

5
MongoDB - Documents continues…
 Documents in MongoDB cannot contain duplicate keys.
 For example, the following is not a legal document:

{"greeting" : "Hello, world!", "greeting" : "Hello, MongoDB!"}

 Key/value pairs in documents are ordered:

{"x" : 1, "y" : 2} is not the same as {"y" : 2, "x" : 1}.

 Field order does not usually matter and you should not design your schema to
depend on a certain ordering of fields (MongoDB may reorder them).

6
MongoDB - Collections
 A collection is a group of documents. If a document is the MongoDB analog of a
row in a relational database, then a collection can be thought of as the analog to a
table
 Dynamic Schemas - Collections have dynamic schemas. This means that the
documents within a single collection can have any number of different “shapes.”

{"greeting" : "Hello, world!"} {"foo" : 5}

 Keeping different kinds of documents in the same collection can be a nightmare for developers
and admins.
 It is much faster to get a list of collections than to extract a list of the types in a collection.
 Grouping documents of the same kind together in the same collection allows for data locality.
 We begin to impose some structure on our documents when we create indexes.

7
MongoDB - Collections continues…
 Naming - A collection is identified by its name. Collection names can be any UTF-8
string, with a few restrictions:
• The empty string ("") is not a valid collection name.
• Collection names may not contain the character \0 (the null character) because
this delineates the end of a collection name.
• You should not create any collections that start with system., a prefix reserved
for internal collections. For example, the system.users collection contains the
database’s users, and the system.namespaces collection contains information
about all of the database’s collections.
• User-created collections should not contain the reserved character $ in the name.
The various drivers available for the database do support using $ in collection
names because some system-generated collections contain it.

8
MongoDB - Collections - Subcollections
 One convention for organizing collections is to use namespaced subcollections
separated by the . character.
 For example, an application containing a blog might have a collection named
blog.posts and a separate collection named blog.authors.
 Although subcollections do not have any special properties, they are useful and
incorporated into many MongoDB tools:
 GridFS, a protocol for storing large files, uses subcollections to store file metadata
separately from content chunks
 Most drivers provide some syntactic sugar for accessing a subcollection of a given
collection.
 For example, in the database shell, db.blog will give you the blog collection, and
db.blog.posts will give you the blog.posts collection. Subcollections are a great way
to organize data in MongoDB, and their use is highly recommended.
9
Database
 In addition to grouping documents by collection,
MongoDB groups collections into databases.
 A single instance of MongoDB can host several
databases, each grouping together zero or more
collections.
 A database has its own permissions, and each
database is stored in separate files on disk.
 A good rule of thumb is to store all data for a
single application in the same database.
 Separate databases are useful when storing data
for several application or users on the same
MongoDB server.
10
Database continues…
 Like collections, databases are identified by name. Database names can be any UTF-8
string, with the following restrictions:
 The empty string ("") is not a valid database name.
 A database name cannot contain any of these characters: /, \, ., ", *, <, >, :, |, ?, $, (a
single space), or \0 (the null character). Basically, stick with alphanumeric ASCII.
 Database names are case-sensitive, even on non-case-sensitive filesystems. To keep
things simple, try to just use lowercase characters.
 Database names are limited to a maximum of 64 bytes. There are also several reserved
database names, which you can access but which have special semantics.
 admin This is the “root” database, in terms of authentication.
 local This database will never be replicated and can be used to store any collections that should be
local to a single server
 config When MongoDB is being used in a sharded setup, it uses the config database to store
information about the shards.
11
Getting and Starting MongoDB
 MongoDB is almost always run as a network server that clients can connect to and perform operations
on.
 Download MongoDB and decompress it. To start the server, run the mongod executable:

$ mongod

 When run with no arguments, mongod will use the default data directory, /data/db/ (or \data\db\ on the
current volume on Windows).
 If the data directory does not already exist or is not writable, the server will fail to start.
 On startup, the server will print some version and system information and then begin waiting for
connections. By default MongoDB listens for socket connections on port 27017.
 The server will fail to start if the port is not available—the most common cause of this is another
instance of MongoDB that is already running.
 mongod also sets up a very basic HTTP server that listens on a port 1,000 higher than the main port, in
this case 28017. This means that you can get some administrative information about your database by
opening a web browser and going to http://local host:28017.
 You can safely stop mongod by typing Ctrl-C in the shell that is running the server. 12
MongoDB Shell
 MongoDB comes with a JavaScript shell that allows interaction with a MongoDB
instance from the command line.
 The shell is useful for performing administrative functions, inspecting a running
instance, or just playing around. The mongo shell is a crucial tool for using
MongoDB and is used extensively throughout the rest of the text.
 To start the shell, run the mongo executable:

$ mongo
MongoDB shell version: 2.4.0
connecting to: test
>
13
MongoDB Client
 Although the ability to execute arbitrary JavaScript is cool, the real power of the
shell lies in the fact that it is also a standalone MongoDB client.

 On startup, the shell connects to the test database on a MongoDB server.

 For instance, one of the most important operations is selecting which database to
use:
> use foobar
switched to db foobar

14
Data Types Basic Data Types
 Null
 Boolean
 Number
 String
 Date
 Regular expression
 Array
 Binary data
 Code
Array
Embedded document
_id and ObjectIds
15
Q&A
• Define MongoDB document and collection?

• Discuss the rules for key on documents?

• Why do you mean by dynamic schema?

• Discuss various data types of MongoDB?

16
Learning Outcome
 At the end of this session, you will be able to
 Understand the basics of AJAX
 Understand different request and response methods.

17

You might also like