MongoDB is a NoSQL database that supports scalable, and high-performance data storage solutions. The platform’s automatic sharing features combined with real-time analytics and horizontal scalability empower businesses with efficient data management.
Capabilities |
|
---|---|
Segment |
|
Deployment | Cloud / SaaS / Web-Based, Desktop Mac, On-Premise Linux, On-Premise Windows |
Training | Documentation |
Languages | English |
MongoDB is very easy to learn and the BSON format make is super clear to read and interact with. The most important for us was the sharding feature and the fact we could take advantage of atomic operations.
It's not a general purpose DB and you need to plan heavily before creating new db schema.
We were have a lot of performance problems with our write-heavy application and MongoDB helped us save all those problems. The installation and maintenance was also very straight-forward and we were able to pick it up with ease from the online documentation.
Easiest document database with real querying capabilities with map and reduce built in.
Update queries get really slow and database performance starts falling linearly with the size of database
Workflow management with jobs and task tracking. Product catalog with the evolving schema of products.
MongoDB is a versatile NoSQL database, that requires limited training to get started. Querying the database doesn't involve writing complex code, but simply sending a JSON filter.
Setting up a production system can be rather expensive for small systems. Setup and maintenance can also be rather complicated without paid tools.
MongoDB has a dynamic schema. This give flexibility to the application, making it possible to easily create backward- and forward compatible versions. The schema does allow the creation of indexes, to increase performance.
We've used mongo in three different projects: in to of them for data serialization and for schema analysis for the other one. The query API is powerful and expressive and object serialization (with Morphia, I am sure there are other great frameworks) is seamless and with minimal annotation overhead. MongoDB Compass tool that comes with it is fantastic for statistically analyzing the schema of arbitrarily hierarchical data.
I would probably add a bit more flexible wildcard-style query capability (i.e. when you don't know a specific name for a field, but know a little about the structure it should satisfy), but I'm being picky.
Natura language understanding. Mongo's support for heterogeneous documents has been very handy.
The ease of use. The ability to scale very easily. The great datastructure and javascript query language,
Greater speed compared to Postgree would be awesome.
Storing large different types of data, not always structured-
It's simple query language and drivers make it easy to learn for adopters while still delivering the necessary power needed for complex analysis. As a platform, it can handle almost instataneous queries over large datasets and still not give up on write performance. Some of our scenarios analysis and use cases couldn't be performed on real time on a traditional RDMS and MongoDB empower us to do this.
If you take into account the CAP theorem* MongoDB is clearly positioned as CP solution, and while some solutions such as Cassandra can be tuned to allow the developer to change it's priorities using read or write concerns, MongoDB will never let you write to secondaries, this way you cannot favour Availability over consistency, so for any application that requires instantaneous failover it is not recommendable. *https://dzone.com/articles/better-explaining-cap-theorem
Our latest product to be delivered with MongoDB works on enforcing call center workers schedule and monitoring all possible events on the operations, the real and alerts could not be done on the traditional platforms without a massive work on optimization and the performance we have today would be unachievable.
What I like best about MongoDB is that it is simple and fast. There isn't a huge barrier to entry like with RDBMS's. When I first started working as a MSSQL developer, I would go home with my brain spinning for months wrapping my head around all the concepts and challenges. With MongoDB, within the first week I was like wow, I love this, it just makes sense.
I dislike the .NET driver implementation, it could use a rework in my opinion. You have to use tons of classes to build up your queries. It would be great if it took advantage of parameterized strings and more closely followed the pattern of the mongo shell.
I'm storing data for social analytics and writing an intranet that uses MongoDB as it's data store. It has been very beneficial to have a datastore that stores my javascript documents in the same basic format instead of having to normalize and denormalize everything to get it in and out of MSSQL.
Working with data in a manner that leverages my JavaScript know-how
Maybe the absence of some sort of GUI platform
Data persistence in apps, data scraping and data visualization.
Mongo is the best option for web based apps and can be used with other databases too. Is a perfect match for applications made on Node.js - and more, his scalabity and speed are amazing, making this database the first choice for startups and other bussiness with core on inovation.
The database need some improvements like unique keys, but in general he is perfect! :)
My tear are making some integrations with websites and mobile apps and using Mongo DB we can get fast response using sharding and others features. This DB is amazing fast and flexible!
There are no joins and it is much faster comparing to SQL
There is not much van be done from the UI side
faster, reliable solutions with fewer problems
I did a great research of NoSQL document oriented databases. MongoDB was my ultimate choice and I haven't regretted it yet. I loved the online documentation, the great books, the huge community. Technically, I've been running a web application with MongoDB with 3 shards and 2 replicas for 5 months now and it's working so smoothly it scares me.
Being used to work with MS SQL, I miss the Management Tool application. I found some client apps for Mongo, like Robomongo, but still haven't found the one that makes me feel completely covered and comfortable.
MongoDB solves every database related problem for a modern web application. Dynamic document structure, rapid searching, ease of learning, etc.
MongoDB offers a fast development model over the traditional relational / SQL systems.
The lack of good instrumentation to understand the internal state
Startups development is all about experimentation, both in terms of business model and technical implementation. Using MongoDB it is possible to very rapidly construct and test ideas.
It works on Mac OS, Windows, and Linux. It is pretty easy to install and run the server with the console or terminal. About MongoDB and NoSQL, it is a big and tested platform with a big community of developers, I love the scalability of each document and the schema design concepts that I learned in MongoDB University. All the documents are JSON, If you're familiar with JavaScript language it will be easy to adapt to MongoDB. It is a robust platform, it provides you with replicas set and shared databases so you can scale your app fast and nice. I have MongoDB installed in my Linux Kubuntu 15.10 Laptop and my Windows 10 PC, I have used it with MEAN Stack in an angular.js course I took in Pluralsight, with Spark Java Framework I developed the simple blog system that you do in the MongoDB University Courses, and Meteor.js platform and a Coursera Web Design Specialization I am taking right now where we use Meteor.js to create collaborative reactive apps, we develop a voting web apps system, a doc editing system, a portfolio with a blog, a music app, a drawing app, and finally, I am developing my Capstone Project where I am going to use MongoDB for its scalabilities opportunities. My personal portfolio has MongoDB as Database for the blog, be my guests http://corderogerardo.me.
Well it is not I dislike, it is more a take care when you as a Linux user were installing MongoDB, it is good that you learn first how to use your terminal, all the commands you need to create folders and give permission when you need it, I am saying this because you may have problems starting, because you need to open two consoles or terminals, and in one you need to write and enter mongod to start the server and in the other mongo to start the MongoDB shell, then when you finish you need to stop first the mongo shell and after the server.
Fast scaling and easy use, for what I need when I was developing my portfolio and know for my Capstone final Project I want a different version to test how the system operates within a lot of users.
schemaless database, document database, fantastic to scale out. great management of replica set and sharding...i love it. Nested document and index creation, it's fantastic the power of this database. It's great that you can evolve your database simply adding tags/values/elements in your newest json records; don't worry about tables structure and so on. Please consider that there's alsa a mongodb university, with free online courses for developers (.net, python) and dba. what else?
nothing, at the moment. really, I'm using it from four months and i've never had a problem with it. Only i'm having some trouble managing a lot of windows shell, but, hey we're dba, not interface designer, right?
we're testing it for a transactional database (schemaless). moving from a sql server classic relational database storing xml data type (too slow for our porpouse) to a json database. easy to administrate and
The native map reduce tools have "cut the fluff" and let my solution to another level, without having to count on many different third party tools. It's as simple as creating a prototypic script.
I wish I could use a native GUI tool whereby I could rely on. Free open-sourced tools are not optimal, whilst one specific solution has one good feature, it may lack another just as important one. Paid solutions are great ones, but many times expensive ones too.
I've been dealing with a heavy load of data whereby a big data kind of solution is being built. While trying with many other relational databases, I have felt the lack of native support to perform simple BI tasks, such as the aforementioned map reduce feature. Now, by using MongoDB, I have been able to create on-the-fly BI Cubes as simple as creating a quick script.
The east startup, from the moment you start up to the point where you have a running application is a matter of minutes. Once the initial steps are done it can be easily scale up in a matter of seconds with no extra effort. It is easy to connect from multiple applications and drivers. It is part of the MEAN stack for a reason
It still does not have the throughput of some of the commercial products such as cassandra, however it is much more easy to debug and understand the workflows
1. The ease of scaling up when handling large volumes of information 2. The encryption system helps when handling with HIPAA compliance
Recently I was very impressed by NoSQL databases and especially Mongo. In modern world if you think about document oriented database - i'm pretty sure that you will think about Mongo first. Javascript as internal language, flexible indexes, full text search, clusterization from the box - all this features in my own mind made Mongo one of the best NoSQL databases. Ofcourse we should not forget about big communitu and a lot of official language bindings.
My projects use cyrrilic set of characters (Russian) and Full Test Search engine not so good for that. Clusterization for leader election requires at least 3 node,
In my projects I have a lot of unstructured documents - and I need fast search and store engine for them.
Besides the obvious benefits of scalability, performance, and being open source, what I like best about MongoDB is it's ease of use and simplicity. Getting MongoDB up and running literally takes only a couple of seconds. And in particular if you are working in a shop using CD/CI processes, MongoDB fits extremly well. At our shop I think nobody would ever consider going back to a SQL based persistence layer. To summarize: - scalibility - performance - stability - simplicity - functionality - flexibility - open source - popularity
Though adopting MongoDB can provide tremendous advantages, switching to a schemaless paradigm also can have it's challenges. Keeping your data clean can become very difficult and shouldn't be underestimated. Secondly, not having any join functionality can make certain tasks very cumbersome. That's why I can't wait start using MongoDB 3.2 with Document Validation and $lookup.
MongoDB allowed our engineering team to build a web application that horizontally scales with the business.
In the production environment, MongoDB provides an easy to use, easy to understand, yet powerful and reliable replication model to protect corporate data. Replication strategies can be quickly set up and tested in a number of ways, from a single development machine up to a full blown cloud solution. As the volume of your data grows, sharding is easy to set up and maintain. Capped collections and time to live indexes give you powerful tools to limit how much data you maintain. The document model allows developers to rapidly prototype data models and freedom from a rigid schema allows painless changes to the data layer as business needs evolve.
While the time to get a new developer productive in MongoDB is short, it takes extra time to get a developer with a SQL background to rethink their design patterns.
We deal with a lot of disparate data sources. JSON documents allow flexibility in accepting the data from external sources without strictly enforcing a lot of "heavy handed" rules. With MongoDB, we are able to quickly ingest the data then adapt rules to make best use of the the data.
It's a solid document store with good performance. I enjoy the robust operators, benefit greatly from the mature ecosystem, and have my butt saved every now and then by the built-in mapreduce & aggregation framework.
The only thing I dislike is that they quickly develop great functionality, and I'm hesitant to upgrade my database in production to immediately take advantage of it. A safer and/or more fool-proof way to upgrade (and rollback) databases would be awesome.
We use MongoDB for everything, and we would probably be just as well off with a SQL database, but I really enjoy the flexibility of the embedded documents and deep indexes.