Database management systems have taken the world by storm. According to a market report from DigitalJournal, the industry is expected to be valued at more than 134 billion USD by 2027, with a rapid compound annual growth rate (CAGR) of 11.97% during the aforementioned period. While databases have been around for more than five decades, it has evolved from more traditional file-based methods to the modern relational and non-relational databases we know today.
In this article, we’ll be discussing NoSQL databases, which are the most ideal option for handling unstructured data among the different database types.
What Is a NoSQL Document Database?
NoSQL is commonly misunderstood as a ‘non-relational database’. In truth, it actually means ‘not only relational’, meaning these databases do not always have to rely on SQL. These databases store data in a non-tabular format, which often involves a large variety of data kinds. A NoSQL hosting solution like MongoDB is designed with developer productivity in mind, which means it’s more adaptable and flexible than solely relational databases. This is also advantageous for developers working in complex and modern applications.
What Are the Different Types of NoSQL Databases?
As enumerated in a GeeksforGeeks article on NoSQL databases, there are four types of NoSQL databases to choose from. Firstly, the document-based database mainly uses documents to store information instead of tables. Key-value stores are the simplest form of a NoSQL database, wherein data is retrieved using a unique key assigned to each element. Column-oriented databases, on the other hand, simply store data in columns instead of rows. Lastly, graph-based databases focus on the relationship between elements.
Why Use MongoDB to Create NoSQL Databases?
MongoDB is an incredibly intuitive database provider and is even described by co-founder Horowitz as ‘fundamentally better’ for most developers. This is because it’s written in C++, Java, Python, Ruby, and many other languages, which gives developers more freedom to choose. The database also stores data in the form of JSON-like documents, which overall provides reliability, high performance, scalability, and at a lower cost. In the following section, we’ll delve into the basics of creating a NoSQL database in MongoDB.
How Do I Create a NoSQL Database in MongoDB?
First, we familiarize ourselves with a basic JSON document:
{
“_id”: 1,
“first_name”: “Sarah”,
“email”: “[email protected]”,
“cell”: “222-222-2222”,
“likes”: [
“red”,
“blue”,
“yellow”
],
“businesses”: [
{
“name”: “Restaurant 01”,
“partner”: “Ruth”,
“status”: “Bankrupt”,
“date_founded”: {
“$date”: “2022-01-01T04:00:00Z”
}
},
{
“name”: “Hotel 01”,
“date_founded”: {
“$date”: “2022-01-01T04:00:00Z”
}
}
We then proceed to create a cluster by loading your sample data, and IP address, and creating a user profile. Next, run this command to create a cluster:
atlas quickstart [options]
You can also run queries on your database depending on your operations. Here’s an example of a document-based query using CRUD operations:
db.places.find(
{
location:
{ $near:
{
$geometry: { type: “Point”, coordinates: [ -23.8776, 37.85 ] },
$minDistance: 500,
$maxDistance: 500
}
}
}
)
Here’s how to use aggregation operations to create queries:
db.zipcodes.aggregate( [
{ $group:
{
_id: { city: “$city”, state: “$state” },
pop: { $sum: “$pop” }
}
},
{ $sort: { pop: 1 } },
{ $group:
{
_id : “$_id.state”,
biggestCity: { $last: “$_id.city” },
biggestPop: { $last: “$pop” },
smallestCity: { $first: “$_id.city” },
smallestPop: { $first: “$pop” }
}
}
] )
Finally, you can also query time series in your MongoDB database by using the following:
db.device_readings.aggregate([
{“$setWindowFields”: {
“partitionBy”: “$deviceID”,
“sortBy”: {“timestamp”: 1},
“output”: {
“consumedKilowattHours”: {
“$integral”: {
“input”: “$powerKilowatts”,
“unit”: “hour”,
},
“window”: {
“range”: [-1, “current”],
“unit”: “hour”,
},
},
},
}},
])
Things to Remember Before Setting up Your NoSQL Database
One thing to remember is to prioritize looking into database management systems and their available OS compatibilities. While most of the top providers right now are able to run NoSQL on systems like Microsoft and MacOS, it’s still an important consideration if you want the smoothest experience. Moreover, look into your provider’s available tools and features. MongoDB’s Atlas offering, for instance, is fully managed and on-demand, and works for major platforms like AWS, Azure, and GCP.
For more helpful posts about software, applications, and operating systems, check out the rest of our blog here at BeTechWise.