Excited about the potential to use MongoDb for upcoming projects
I have heard of MongoDb, but never researched further. I have always used a SQL based database for just about every project I can remember. But I have an idea for a project, that having to create a structured database for would not be aligned with the model of what I intend.
The project idea started with solving the need for a cost effective application for smaller legal firms to manage physical paper files. Many of the systems available are bloated and frankly just too expensive. Originally, I had the idea to organize with a strict two layer hierarchy of Client.Matter. But what if I wanted to make this a more generalized system that could potentially be used in other business sectors? I would need a little more freedom to allow deeper organization levels. I would also like to allow a more free form storage of information.
I started researching OWL/RDF as a way to describe data semantically. In thinking about RDF ontologies, it seemed to lead me in the direction of what I was envisioning. But how do you model the data? So I found a video on SQL v. NoSQL that helped me explain the difference. I was intrigued.
So what is NoSQL? It is a more free form data storage where items called “documents” are stored in “collections”. A collection would be similar to the idea of a table in relational databases, and a document would be similar to a record in that table. However, each document does not have to have the same field names if you don’t want. I’m not sure the value of have a hugely diverse set of field names, but I can foresee having a main subset of similar field names, and allowing for each document to have a few extra fields as needed to help describe the record.
MongoDb fits very well with my idea of a more loose interpretation of data. I found a great tutorial on MongoDb by Traversy Media. I also created a Docker Compose file to test Mongo and Mongo-Express. Mongo-Express is a very easy to use database manager for Mongo that would be similar in idea to using PHPMyAdmin for MySQL databases.
Need to keep researching, but I think I found a good solution. Next is to see how to integrate this in a Spring.IO web based application.