Realcode4you provide solution as per your need and requirement if you face any problem with MongoDB then our expert ready to help you. In this blog we will cover all theoretical concept related to NoSQL.
A type of NoSQL database
huMONGOus database
Developed by 10Gen, a NYC company, in 2007
Document-oriented
Schema less (schema optional)
Sharding
Replication
Horizontal scaling
Map-Reduce Support
What is Map-Reduce?
Generally: a programming model for processing and generating big data sets with a parallel, distributed algorithm on a cluster
In MongoDB: a data processing paradigm for condensing large volumes of data into useful aggregated results
MongoDB document example
A document in MongoDB is stored as a binary serialization of a JSON type document
Namespaces
A namespace is like a database in relational database systems
* > use tutorial
* Switched to db tutorial
Creates a namespace called ‘tutorial’ and makes it available for use
* So no need to explicitly create a namespace before using it
All subsequent commands are assumed to pertain to this namespace unless a command to use another namespace is executed
A namespace consists of a collection of documents
Collections
Collections are sets of documents
* These are like tables in relational database systems
Documents with very different fields can be stored in a collection.
* But it makes sense from the point of efficient search to
keep more or less similarly structured documents, about related
topics be stored in the same collection
db.students.insert({name: “John Doe”})
Notice: we created the collection students just by telling MongoDB to insert a document into it—no need to explicitly create the collection.
* Similarly, the document inserted doesn’t have to be created prior to insertion
Finding documents
//select all documents in collection ‘students’
db.students.find()
Output:
{“_id”:ObjectId(“5c806c41839f4c0f6a40767”), “name”: “John Doe”}
The find() command returns a JSON object
* The “_id” key and its value are added automatically to the document at the
time of insert
* The primary index of the document is the _id field.
Find with query predicate
db.students.insert({name: “Jane Smith”})
This command adds another document to students collection
db.students.find()
Output:
{ "_id" : ObjectId("5c806c41839f4c0f6a407676"), "name" : “John Doe" }
{ "_id" : ObjectId("5c80738a839f4c0f6a407677"), "name" : "Jane Smith" }
db.students.find({name: “Jane Smith”})
Output:
//the field ‘name’ and the value ‘Jane Smith is a query predicate Asking for all documents with ‘Jane Smith’ in the ‘name’ field. It returns the following:
{ "_id" : ObjectId("5c80738a839f4c0f6a407677"), "name" : "Jane Smith" }
Updating documents—Operator Update
db.students.update({name: “John Doe”}, {$set: {country: “USA”}})
//Update the {name: “John Doe”} document by adding the field ‘country’ with the values ‘USA
db.students.find({name: “John Doe”})
Output:
{ "_id" : ObjectId("5c806c41839f4c0f6a40767"), "name" : “John Doe”, “country”: “USA” }
db.students.update({name: “John Doe”}, {$set: {name: “Johnny”}})
//change the name to ‘Johnny’
Updating documents—Replacement Update
To replace one document with another document in the collection use replacement update.
db.students.update({name: “Johnny”}, {status: “new”})
That is, without the $set operator
db.students.find()
Output:
{ "_id" : ObjectId("5c806c41839f4c0f6a407677"), "name" : “Jane Smith" }
{ "_id" : ObjectId("5c80738a839f4c0f6a407676"), "status" : "new" }
Deletes
To delete all the documents from a collection (w/o deleting the collection)
db.students.remove()
To delete just a specific document
db.students.remove({name: “Johnny”})
To delete the collection
db.students.drop()
Indexing
MongoDB databases are automatically indexed on the _id field (primary index)
You can also create indices on other fields—secondary indices
* Up to 64 per collection allowed
Indices enable efficient search
In this respect, it is like an RDBMS
* But it is schema less
* Has sharding and replication to make it faster than RDBMS
Why use MongoDB or any NoSQL DB?
Main reason: Allows efficient and quick scaling up
* Makes sense only if large amount data needs to be ingested quickly
* Volume and Velocity (volume by itself may not be a good enough reason)
* Especially, if the data comes in unpredictable bursts
Second reason: Variety of data in the sense that the data to be ingested does not all have the same fields
* Schema-less or schema optional
* Not clear how Cassandra supports that
Third reason: Eliminates expensive joins for querying data
* Why do we need that?
* Large volumes of data will result in very expensive joins
* Real-time applications
Why we use MongoDB?
Big Data and Horizontal Scaling
Handling big data gracefully requires that new data coming in rapidly and in unpredictable bursts needs to be ingested quickly.
Real-time applications based on big data implies that data be supplied quickly.
Low latency
Horizontal scaling (as opposed to vertical scaling) facilitates quick ingestion
Horizontal scaling combined with sharding and no-joins architecture facilitates low latency
Supporting horizontal scaling
Horizontal scaling
* As more data is added, more nodes/clusters are added to the system
More nodes there are, more likely a node will fail
Nodes have to be connected by a network
* The more network links there are, more likely that a link will fail
What problems do node or link failure cause?
* How do Cassandra and MongoDB handle these problems?
Implications of Horizontal Scaling
Horizontal scaling assumes that each new node/server does not have to be able to hold/process large amounts of data.
* Use of relatively cheap commodity servers
So, a large data set (table, document family, etc.) may have to be broken up (sharded) and different shards have to be stored on different nodes/servers.
* Implies that a routing service is needed to route a write or read request
to the appropriate shard.
If you need any database assignment help related to MongoDB, Oracle, SQL Server and MySQL then we are ready to help you.
Send your request at realcode4you@gmail.com and get instant help with an affordable price.
We are always focus to delivered unique or without plagiarism solution which is written by our highly educated professional which provide well structured code within your given time frame.
If you are looking other programming language help like C, C++, Java, Python, PHP, Asp.Net, NodeJs, ReactJs, etc. with the different types of databases like MySQL, MongoDB, SQL Server, Oracle, etc. then also contact us.
Comments