One promising emerging category of NoSQL databases is key-value stores. These include Redis (disk-backed), Riak, Aerospike and others. The problem I struggle with the most is the lack of joins.

Consider a weather application, which would need to store weather conditions for, say, every city in the US, with one record (forecast) each for every hour in the next two weeks. First, you'd need a list of cities, each with an associated state, zip code, coordinates and key. Then, a list of weather conditions, such as 'raining', 'sunny', 'snowing', etc. Then, a list of forecasts, each associated with a particular time and date, a particular city, and a particular weather condition (along with miscellaneous other information, like temperature, pollen count, UV, whatever else happens to be included in the forecast). The issue is the joins, connecting forecasts to cities and weather conditions, and necessary for fluid relationships between data.

I realize this is a somewhat simplified (yet contrived) example, but in basically any data management scenario the question remains. How do key-value stores deal with joins?


  • I do realize that Riak has link walking, which is functionally similar to a join, but the question remains.

  • When I say "deal with joins", I mean without Cassandra-like shameless replication to the point at which data happens to be organized in at least as many different ways as you want to access it

  • I would also be happy to hear of other databases that have solved this problem

  • 1
    Take a look here :-). More seiously, take a look at Brian Aker's take on NoSQL here. You throw out a lot of solid support for data manipulation when you decide to use NoSQL as opposed to an RDBMS! – Vérace Jul 11 '15 at 14:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.