DEV Community

Cover image for Try NoSQL, Get Started with MongoDB
Nikhil Bobade
Nikhil Bobade

Posted on

Try NoSQL, Get Started with MongoDB

What is a MongoDB:

MongoDB is a non-relational database, which means that data is stored as collections.

MongoDB also supports BSON (Binary JSON), a binary-encoded form of JSON that allows for additional data types such as binary, decimal, object ID, and so on.

MongoDB has its own query language, based on JSON and JavaScript grammar, for querying and MongoDB is a non-relational database, which means that data is stored as collections, with each document representing a record and each field representing a value.

Installation for MongoDB?

1st Login to your mongoDB account after doing login create a new cluster for your database as per your requirements. also mongoDB offers free cluster for beginner’s if they want to learn mongoDB. :)

Installation Steps:

Package Manager Installation:

  • Update the package list: sudo apt update (for Debian-based systems) or equivalent.
  • Install MongoDB: sudo apt install -y mongodb-org (for Debian-based systems) or equivalent command for other package managers.
  • Start MongoDB service: sudo systemctl start mongod.
  • Enable MongoDB to start on boot: sudo systemctl enable mongod.

Cloud Installation (MongoDB Atlas):

  • Sign up or log in to MongoDB Atlas.
  • Follow the guided steps to create a cluster.
  • Configure security settings and connect your application.

Optionally, install MongoDB Compass or other management tools for easier database administration and visualization.

Basic CRUD in MongoDB?

First, ensure MongoDB is installed and running. You can connect to MongoDB using the MongoDB shell or a MongoDB client such as MongoDB Compass.

In MongoDB, databases and collections are created implicitly when data is first stored. To switch to a specific database or create one explicitly, use the following commands: (use mydatabase)

To insert data into a collection (equivalent to a table in relational databases), use the insertOne() or insertMany() methods:

// Insert a single document into a collection
db.users.insertOne({ name: "John Doe", age: 30, email: "john.doe@example.com" });

// Insert multiple documents into a collection
db.users.insertMany([
    { name: "Jane Smith", age: 25, email: "jane.smith@example.com" },
    { name: "Michael Johnson", age: 40, email: "michael.johnson@example.com" }
]);
Enter fullscreen mode Exit fullscreen mode

Read (Find Documents)
To retrieve data from a collection, use the find() method with optional query criteria:

// Find all documents in a collection
db.users.find();

// Find documents matching specific criteria (e.g., find users older than 35)
db.users.find({ age: { $gt: 35 } });

// Find a single document by its _id
db.users.findOne({ _id: ObjectId("insert-id-here") });
Enter fullscreen mode Exit fullscreen mode

Update (Update Documents)
To update documents in a collection, use the updateOne() or updateMany() methods:

// Update a single document matching a query
db.users.updateOne(
    { name: "John Doe" },
    { $set: { age: 31, email: "john.doe.updated@example.com" } }
);

// Update multiple documents matching a query
db.users.updateMany(
    { age: { $lt: 30 } },
    { $set: { status: "inactive" } }
);
Enter fullscreen mode Exit fullscreen mode

Delete (Delete Documents)
To remove documents from a collection, use the deleteOne() or deleteMany() methods:

// Delete a single document matching a query
db.users.deleteOne({ name: "John Doe" });

// Delete multiple documents matching a query
db.users.deleteMany({ status: "inactive" });

Enter fullscreen mode Exit fullscreen mode

Pros of using MongoDB:

  • Suitable for unstructured and dynamic data, where the schema and relationships change over time.
  • MongoDB provides greater simplicity and agility since it does not require a predefined schema, allowing for more flexible and expressive data models.
  • Scalable and performant, it can easily manage massive amounts of different data and distribute it over several servers.

Thank You for reading this post for more like this follow to my account and let me know if you have a suggestions in comment section.

Top comments (12)

Collapse
 
leob profile image
leob

What is this? The article has a headline asking "SQL is Dead?", then never proceeds to address it ... :)

In my view (and I'm far from the only one) SQL isn't dead at all, it's more "alive" than ever - I'm seeing "scalable cloud SQL database" projects and platforms popping up everywhere I look ...

NoSQL was mainly invented because RDBMS-es couldn't scale horizontally - but that's starting to change ... NoSQL was not invented because it's easier to use, more powerful, or more flexible - coz it isn't :)

Collapse
 
nikhil27b profile image
Nikhil Bobade

Hey You are right SQL not dead but its for just start your new journey with nosql mongodb.

Collapse
 
leob profile image
leob • Edited

I've actually worked with MongoDB on an app, and Mongo was perfect for that use case ...

It was a meteorology app which streamed gigabyte upon gigabyte of realtime data into the database, and MongoDB was able to handle that ... yes, that's a use case where you REALLY want the raw performance and the scalability of NoSQL :)

But well, that's not your everyday use case, it's a pretty "specialist" one - for the vast majority of "mainstream" applications I don't really see myself quickly choosing Mongo or NoSQL.

Collapse
 
mrpercival profile image
Lawrence Cooke

SQL and mongo are not trying to solve the same type of problems, to say one is dead and to use the other is missing this giant use case difference between them. It's very misleading to make that leap.

Both have their place, for the purposes Mongo was built its great, but its not a replacement for SQL.

I would recommend changing the title to say "getting started with Mongo" its accurate to what the article is about, without misleading new users into thinking Mongo is right for every task.

Collapse
 
carcinocron profile image
carcinocron

lolwut? If anything, mongodb is dead, start your journey with SQL.

Collapse
 
nikhil27b profile image
Nikhil Bobade • Edited

It's never happen 😂 if happen then I am a creator to create that post

Collapse
 
vsaulis profile image
Vladas Saulis

Yes, it's good! You can also mimic relational access.

Collapse
 
nikhil27b profile image
Nikhil Bobade

Yes, Thanks

Collapse
 
appqui profile image
Igor Golodnitsky • Edited

Cons section?

I would better start with PostgreSQL and jsonb.

Collapse
 
nikhil27b profile image
Nikhil Bobade

Data Redundancy and Size: MongoDB is a document-oriented database that frequently holds redundant data. This can result in bigger data sets, particularly when contrasted to relational databases, where data normalisation is typical.

Limited Joins: MongoDB does not support complicated joins as well as relational databases. Although it includes the $lookup operator for performing joins, it may be less efficient and difficult to manage for complex queries.

Collapse
 
shikkaba profile image
Me

SQL isn't dead...

Collapse
 
nikhil27b profile image
Nikhil Bobade

Yes I know still use NOSQL mongodb