Hello
Having used the AppEngine services for a few months, I experienced the following facts concerning the NoSQL Datastore primary keys :
- the exact nature of a Key is not obvious to everyone (although documented in each language-specific online doc).
- the creation/modification of a Key is not trivial when it comes to AppIds and Namespaces, depending on what is exposed or not in each language-specific API.
FWIW, I've deployed the following page to help data extracting from, or encoding to a Key :
http://datastore-key.appspot.com/Example :
http://datastore-key.appspot.com/?keystring=ag9zfmRhdGFzdG9yZS1rZXlyNQsSEk15UGFyZW50RW50aXR5VHlwZSIIZXVyb3BlLTQMCxIPTXlTdWJFbnRpdHlUeXBlGCoMIt answers to two questions for debug and understanding purpose :
- "What entity is refered to by this huge string dangling in my querystring/json/logs/hardcoded constants ?"
- "What would be the string representation of a key of an entity in my application with specific id ?"
The keys themselves are luckily language-independent, like all the Datastore content and the admin console pages.
This online tool also provides nice links to the Datastore Viewer, and two browser search engines taking a Key string as search term.