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 |
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.
I love how fast I can develop solutions using MongoDB. I also love the reliability I have experienced. When I am able to use MongoDB, I know I get scalability out of the box and my application can grow as the demand increases. I never think twice about choosing the technology once I know it is the right tool.
It has taken me some time to learn how to manage my own environment. There are great companies that provide these services, including MongoDB and ObjectRocket, so when my projects get bigger this is never an issue. I love Robomongo as a developer tool but I do wish it had more features. It would be nice if there were more tooling for developers.
I build applications that need to handle lots of different types of data. This change in data schemes are a constant for me. With MongoDB I have been able to build flexible software that can handle these changes in data realtime. I also love the aggregation framework. This framework has made it possible to leverage all the data inside MongoDB and use MongoDB not only for scalable storage but reporting and application development.
The flexible schema and document oriented view match up to architecture and usage pattern based design. The drivers make using it straightforward and well integrated. The ease of deployment and management make operating it a low-overhead task. So when considering data backend and processing requirements, it's an easy choice to make since we can just throw data at it and it handles. Table oriented database introduce a lot of overhead in marshaling application models to the storage. This alone increases time to market and maintenance costs.
Schema is now responsibility of developers. Without server enforced constraints, this can be a problem for shops that don't have established go to production, testing, and quality gates. Reporting from the "main" schema can be challenging unless these needs are factored in at design time. This can creep up when using Mongo as the sole database. In polyglot shops it is diminished.
Used it for: - Social photo sharing app. Benefited from flexible schema, - Content distribution across geographic regions. Benefited from reliable built in replication mechanism. - Content management. Benefited from flexible schema and speed.
The flexible data model and document-based nature of MongoDB has given us so much flexibility to iterate our data models without slowing down development. Not being tied down by a SQL-type rigid schema is wonderful.
Honestly - nothing! If MongoDB itself offered MongoDB-as-a-service (like Compose.io or Mongolab does) we'd use that.
SmartyPal is a platform for personalized learning through children's stories. We improve the quality of children’s screen time by taking award-winning stories and enhancing them with dynamic games and activities that are tailored to each child by an adaptive learning engine. We use MongoDB to store info on the stories and games in SmartyPal, as well as to store a rich set of gameplay data for each user that we use for personalization. As a growing start-up with evolving goals and ever-changing technological needs, we really needed a database solution that was as agile as we are. By using MongoDB, we were able to incrementally add many different features to our application over time, without ever needing to go back to the drawing board. We chose MongoDB because we knew how important this flexibility would be for us.
MongoDB is easy to get set up and running, performs well out of the box, and scales well to any load you're likely to encounter. Docs and community support are second to none, and I've never run into any significant stability or data loss issues using MongoDB in 7 years of developing with it.
MongoDB does not have relational integrity constraints or multi-document transactions, which limits its suitability in some use cases. Until version 3.0, it also had significant problems with disk space usage and some problems scaling write traffic on a single node.
I have used MongoDB for queuing systems, as a 'smart cache', and to store the core data for my application. The biggest benefits have come from the ability to evolve a schema over time, in a live production database, without downtime. The ability to perform online maintenance tasks operationally has also come in handy on more than one occasion (add/remove shard, add/remove replica, replace servers, etc.)
MongoDB is simple to manage and has built in spacial functions. Retrieving geospatial data for various locations is fast and accurate. The introduction of GeoJSON for JSON-formatting makes it easy to work with your data. Clustering is possible with MongoDB and allows for making your data highly available and provides redundancy as well. MongoDB does not support ACID transactions but it does provide atomic operations on single documents. (eg. you can embed related data in nested arrays)
The need for client affinity in a load balanced setup but this is understandable because each mongos instance has cursors and resources specific to them. Ops Manager looks to be fantastic but unfortunately it is only available with MongoDB Enterprise use. MongoDB uses all free memory on the server automatically with no configurable way to limit it.
Interactive maps for photo geotagging. Speed has been the main benefit.
MongoDB hits a sweet spot with requirements call for rapidly developing an application that needs to be fast, scaleable, highly tolerant of change, and has variable data needs. Its document oriented approach opens up possibilities for streamlining application architecture that cannot be easily be achieved with relational databases and even other NoSQL solutions like key/value stores.
Getting up and running with MongoDB is extremely easy - download and run. Its ability to scale to huge levels is impressive. But the configuration of a large cluster is not for the faint of heart, as it can become extremely complicated to keep track of hundreds of shards and replicas. However, the MongoDB team is working to solve this issue. The new deployment and management features of the new release of their MMS service makes the task relatively simple.
My main usage of MongoDB has been for log management. However, I am prototyping a single-customer-view type application for opinion leader analysis, and a file archiving solution.
I like the document storage approach. I can easily save and retrieve an object in json format at one time with MongoDB. No worry about the complex relationships in relational databases. Later if I want to change the attributes of the object, due to the schemaless feature, I can easily update anything. These flexibilities help me to develop fast.
One thing I'm uncomfortable with is the aggregation function; it is too awkward to use. Another thing make me feel upset is when to update the document. I have to think about all the possible places that could cause inconsistency after the change and estimate the affects.
MongoDB provides most features I need in my small projects like various web applications. It is quite easy to store and get the json, image or a file.
NoSQL yet supports schema Support for geospatial indexing with sharding, replication Pipeline aggregation Vast community support and client library in every language Readymade connector with changelog to elastic search , kafka etc
Lack of analytical stack Complex sharding operation with manual balancing
Storing evolving schema database for our SaaS microservices.