CouchDB can indeed be really useful in some cases. However, SQL is generally a lot easier to use for tabular data even if it starts in JSON format. You just need to map out the JSON attributes to your columns and then it becomes simple. Some databases also have JSON helpers these days, been a while since I messed with MySQL so I'm not sure if it does.
When looking at CouchDB, remember that Couchbase and IBM's Cloudant are all part of the same family as is PouchDB which lets you create/manage CouchDB data in either pure Node.js and/or the browser. Couch's main strength comes from its synch capability so using PouchDB in the browser is a great way to create an offline capable web app.
With your data, you do have a simple tabular format even though you have 3 messages. So you could easily flatten it into a SQL database. The trick would be being able to do an insert OR update on a record unless your input always arrives in the same order.
Incidentally, since the data you are looking at is a timeseries, I would also recommend looking at
InfluxDB. This is specifically designed to handle timeseries data and has a SQL-like query language. It also integrates nicely with Grafana for timeseries based dashboards. There is also
Telegraf which is a great tool for capturing all manner of machine based data into InfluxDB. Primarily aimed at performance monitoring but it can be pretty much anything. Indeed, you can easily configure Telegraf to capture MQTT outputs direct to the database then display directly using Grafana. I switched to this a while back on my home hub Raspberry Pi and I've not looked back.