This is a very similar question to one that was just asked here:
http://groups.google.com/group/mongodb-user/browse_thread/thread/32b00d38d50bd858
The answer is the same. In a nutshell, values that unknown should
never be assigned as keys because it makes querying very inefficient.
There are no 'wild card' queries.
It is better to restructure the database such that values that are
unknown are not keys:
{ "_id" : ObjectId("4e53c49385708082b5020000"), "language":"en",
"name" : "Richard", "profile" : "Dreaded Rasta" }
If restructuring the database is not possible, a $where query may be
used with a for loop.
> db.people.find({ $where : function() {for(var unknownLanguage in this){if(this[unknownLanguage]["name"] == "Richard"){return true;}} return false;}});