MongoDB is an open source document-oriented database system. It is part of the NoSQL family of database systems. Instead of storing data in tables as is done in a "classical" relational database, MongoDB stores structured data as JSON-like documents with dynamic schemas (MongoDB calls the format BSON), making the integration of data in certain types of applications easier and faster.
$0
per month
Neo4j
Score 9.8 out of 10
N/A
Neo4j is an open source embeddable graph database developed by Neo Technologies based in San Mateo, California with an office in Sweden.
$65
per month
Pricing
MongoDB
Neo4j
Editions & Modules
Shared
$0
per month
Serverless
$0.10million reads
million reads
Dedicated
$57
per month
Aura Professional
$65
per month
Community Edition
Free
Enterprise Edition
Contact Sales
Aura Free
Free
Aura Enterprise
Contact Sales
Offerings
Pricing Offerings
MongoDB
Neo4j
Free Trial
Yes
Yes
Free/Freemium Version
Yes
Yes
Premium Consulting/Integration Services
No
No
Entry-level Setup Fee
No setup fee
No setup fee
Additional Details
Fully managed, global cloud database on AWS, Azure, and GCP
—
More Pricing Information
Community Pulse
MongoDB
Neo4j
Features
MongoDB
Neo4j
NoSQL Databases
Comparison of NoSQL Databases features of Product A and Product B
MongoDB [is] great at storing JSON data grouped into "collections". In this format, you can store any JSON documents and conveniently categorize them by collections. The JSON document contained in MongoDB is called binary JSON or BSON and, like any other document in this format, is unstructured. Therefore, unlike traditional DBMS, any kind of data can be stored in collections, and this flexibility is combined with the horizontal scalability of the database. It should be noted that MongoDB does not have links between documents and “collections” (this is partially compensated by the Database Reference - links in the DBMS, but this does not completely solve the problem). As a result, a situation arises in which there is a certain set of data that is not related to other information in the database, and there is no way to combine data from different documents. In SQL systems, this would be an elementary task.
Its very well suited for storing graph types relationship information, such as a group of people and their relationships. Data modeling this sort of information in a traditional SQL database is a pain and inefficient. Using Neo4J allows for efficient modeling of data while providing rich querying capabilities using Cypher. Its also a great fit for any programming language because of its support for REST API. It's less appropriate for any other data structure other than Graph data. So as with any DB, evaluate the data structure and query and if the querying revolves around relationships, then Neo4J is a fit. If there is more need for looking up individual nodes and their associated information, Neo4J might not be the most efficient solution in the market.
Easy to learn. When I picked up MongoDB for the first time, I had little background in database management or modeling. If you have a background in javascript (and JSON)... then you can figure out how to use MongoDB pretty fast.
Fast performance.
It's relatively easy to set up in certain environments because there are lots of ready-made solutions out there.
There's a lot of support in the existing ecosystem for it —, especially in the node.js realm.
Query syntax is pretty simple to grasp and utilize.
Aggregate functions are powerful.
Scaling options.
Documentation is quite good and versioned for each release.
It would be nice to have some concept of namespaces, or some way of roughly making a single instance multi-tenant. It'd be nice to make sandboxing easier.
MongoDB is one of the most famous non-relational databases in the world, there are famous active projects that use this database. I think that the same company that develops the database gives you the online induction totally free is something that really is very positive. Accounts with a first-class support to be able to relate the correct implementation of the database, in addition to teaching you the best practices to optimize your projects, I believe that with this decision it is more than obvious which is the best decision at the time of seeing with which database to work.
It is one of the reasons why we prefer it to store documents in a JSON-style format, to access the desired document very quickly regardless of its size, to be readable by human eyes, and to be easily scalable and manageable.
I have reached multiple times to the MongoDB community for the help and they have provided each and easy solution for every problem. Over the internet and on stack overflow many people responds over the challenges. Now this tool is very much used in every company and projects so internally many people are there to give a support.
While the setup and configuration of MongoDB is pretty straight forward, having a vendor that performs automatic backups and scales the cluster automatically is very convenient. If you do not have a system administrator or DBA familiar with MongoDB on hand, it's a very good idea to use a 3rd party vendor that specializes in MongoDB hosting. The value is very well worth it over hosting it yourself since the cost is often reasonable among providers.
The environment I work in is somewhat unique in that we use both MySQL and MongoDB. However, each is used for specific purposes that the other is not well suited for. MongoDB is not a relational database like MySQL, so it serves as the perfect place to dump key bits of data for quick retrieval later. This is something we can't easily do with MySQL. On this smaller database, MongoDB also lets us retrieve data more quickly with its fast and efficient querying.
I have not used anything like Neo4J because of how unique it is in the work that it allows me to do. I am not aware of any other graph database platforms and it might be because it is a growing area (especially in the world of pharmaceuticals). I would be open to trying other softwares though.
We can make more open and flexible systems due to its easy adaptation to new evolutions in web applications.
In the latest versions it offers support for different transactions and we could carry out real tests related to the concurrency of the application.
MongoDB allows you to have distributed clusters, which improves the speed of the queries by reducing the latency that exists between the database cluster and the service that executes the query.
For experimentation purposes, it had a positive impact on my company. It was very natural to work with Neo4j and so intuitive to visualize the data.
Neo4j community edition is free, which is what we experimented on. So there was no investment up front apart from employee's time. But this quickly gave results and it was time well spent.
Neo4j is a cool but very new technology. It was hard to have people onboard, especially some of the leadership and relational folks.