I think you may not understand the nature of "document databases." So I would recommend MongoDB, which is a document database, but I think you will like it.
MongoDB stores "documents", which are mostly JSON entries. The nice part is understanding the internal documents that it stores. So give this document:
{ "name": "Gregg", "fave-lang": "Scala", "fave-colors": ["red", "blue"] }
You can request "fave-lang" or "fave-colors". You can even index in any of these fields, even the fave-colors array, which would require many-to-many in relational lands.
Play offers a MongoDB plugin that I have not used. You can also use the Casbah driver for MongoDB , which I used a lot and fine. Rogue's DSL query for MongoDB, written by FourSquare, is also worth a look if you like MongoDB.
MongoDB is very fast. In addition, you save yourself the trouble of writing schemas, because any record can have any fields you want, and they are still searchable and indexable. Your data model is likely to look the same as it is now, with a custom “collection” (like a table) and other collections with entries that reference the user ID as needed. But if you need to add a field to one of your collections, you can do this anytime without worrying about old records or data migration. Technically there is no schema for MongoDB entries, but you end up organizing similar entries in collections.
MongoDB is one of the funniest technologies I've come across in the last few years. This happy Saturday, I decided to check it out and for 15 minutes was productive and felt that I had “received”. I regularly give demos at work, where I show people how to get started with MongoDB and Scala in 15 minutes, and this includes installing MongoDB. Shameless plug if you are in web services, here is my blog post about getting started with MongoDB and Scalatra using Casbah: http://janxspirit.blogspot.com/2011/01/quick-webb-app-with-scala -mongodb.html
You should at least go to http://try.mongodb.org
What made me start.
Good luck