Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>It is definitely hard to provide a recommendation with such open question; however, you can analyze some of the advantages of MongoDB over other database, most likely you are considering Mongo as an alternative to a relational database like Oracle or SQL Server.</p> <p>From <a href="http://mongodb.org" rel="nofollow">http://mongodb.org</a> you can see the main characteristics...</p> <ul> <li><p><strong>Document Oriented Storage</strong>: Which basically means you can have a single or multiple documents representing your data structures. One very important think here is that the schema is <strong>dynamic</strong>, that is you can add more attributes without having to change your database. Pretty useful for adding flexibility to your system.</p></li> <li><p><strong>Full index support</strong>: We wouldn't expect any less than full support for indices, right?</p></li> <li><p><strong>Replication and High availability; Sharding</strong>: Very critical elements for availability, disaster recovery, and to guarantee the ability to grow with your system.</p></li> <li><p><strong>Querying</strong>: Again, pretty critical requirement. Need to make sure you account for the dynamic schema. You will need to consider in your queries that some attributes are not defined for all documents (remember dynamic schema?). </p></li> <li><p><strong>Map/Reduce</strong>: Very useful for analytics. Recommended for aggregating large amounts of data. Should be used offline, meaning, you don't run a live query against a map/reduce function, otherwise you will be sitting for a while waiting. But it is great to run batch analytics on your system. </p></li> <li><p><strong>GridFS</strong>: A great way of storing binary data. Automatically generates MD5's for your files, splits them in chunks, and can add metadata. Your files will stay with your database.</p></li> </ul> <p>Also, the Geolocation indices are great. You can define lon,lat attributes and do searches on those.</p> <p>Now it is up to you to see if these features are good for your needs, or you rather stay with a well know relational system.</p> <p>Before jumping into a solution you should experiment and build some prototypes. You will see very early what challenges you'll have in your design.</p> <p>Hope this helps.</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload