I take exception at the notion that one cannot "guarantee" the presence of a specific key, when one is using a key:value store without an explicit schema.
(sounds like someone was believing anti-mongo FUD and living in sql-land too long...)
If you built a structure and put it IN the database, you can use that same structure to get it OUT...the presence of a key can be checked, etc. all one is doing is moving the schema into the codebase (where I argue it belongs... the opposite being an all-powerfull-db with stored procedures as a kind of remote-remote-procedure-call)