This week saw the introduction and use of MongoDB as a database as opposed to MySQL we've spent most of the class with. Not having much practiced use of either database before I've found overall I've enjoyed using both a lot more now that I understand a bit more of the under the hood mechanics, versus just trying to find the right query that would resolve my need. I can now look at the design of the database and see how it was intended to be utilized.
I thought I might favor MongoDB over MySQL, as the idea of MongoDB document(s) sort of fits naturally with a lot of my use of other programming languages data structures like arrays and hashes/dictionaries. However, this course got me a lot more comfortable using MySQL and designing my program towards its advantages. I discovered that a MySQL query in itself could perform some or a lot of the work that I always assumed I would have to do with the raw data after receiving it from a database.
I feel I might gravitate towards either database depending on what my program was being designed to do and the data it was going to be using. If the data was more adhoc, or in a json like format I might opt for using MongoDB, but if I knew the data was going to be more fixed, maybe MySQL. Or if I knew the SQL query could provide benefit in terms of reducing what I would need to do with the data after retrieving it, maybe MySQL.
They both have great interfaces to lots of different programing languages, so that probably wouldn't be a deciding factor for me.
Another thing I'd think about, if I was designing the database itself versus just using the database, would things like performance and data replication. MongoDB might have a slight performance edge, but is generally from the flexibility of how you can query your data. Overall, both are great databases and it choices in each really are determined by the data you're working with, how you'll be accessing it, and retention/scaling of the database.