Repository navigation
Returning key identifier as part of data returned by query #594
Description
Activity
Some related issues:
- Provide helper methods on entity.Key for Kind, parent, name, and ID #574 - Add helper methods on key (this would make your code
dao.id = entity.id(ordao.id = key.name) - Access properties directly from the entity #508 - Access properties directly rather than inside
data/id
I think #574 would solve your issue.
Regarding
key.path.pop(): I can't find anything in the docs -- can you maybe open a separate issue to remove those examples? I think you're right that it's not the best way to get the Key name/id.- Provide helper methods on entity.Key for Kind, parent, name, and ID #574 - Add helper methods on key (this would make your code
- addedtype: questionRequest for information or clarification. Not an issue.Request for information or clarification. Not an issue.api: datastoreIssues related to the Datastore API.Issues related to the Datastore API.
on May 13, 2015 Thanks @jgeewax!
My specific issue refers to retrieving entities. I actually think getting the
idis ok when saving an entity as it's only one entity. The problem is that retrieving multiple entities requires something likemapto populate the data object.This could be resolved by automatically populating the
idornameproperty on thedataobject returned. This is similar to what happens in MongoDB whereby the_idis automatically set. If you want to exclude to exclude theidornameproperty you could do so through a projection, but by default it's included.Gotcha, @byrneciaran
Our worry (outlined in #508) is that
keyisn't a reserved word, so if someone had a property calledkey, we'd blast it out with the entity key... So we have to figure something out there... Feel free to add your use case over on that issue so we can make sure whatever we decide makes sense for everyone!3 remaining items
- added 2 commits that reference this issue
on Jan 14, 2026 - added a commit that references this issue
on Jan 21, 2026 - added a commit that references this issue
on Feb 4, 2026 - added a commit that references this issue
on Feb 5, 2026 - added a commit that references this issue
on Feb 23, 2026 - added a commit that references this issue
on Feb 25, 2026 - added a commit that references this issue
on Feb 26, 2026 - added a commit that references this issue
on Mar 12, 2026 - added a commit that references this issue
on Mar 17, 2026 - added a commit that references this issue
on Mar 18, 2026
I use the key identifier extensively throughout my app as my "id". The namespace and kind doesn't change. Is it possible to return the key identifier inline with the data returned from queries or should I just include the identifier as a property on the entity ?
For example, if you look at this simple example of an entity returned by a query:
What I would like is for my data object to look like:
At the moment to include the key identifier with my data object I need to do something like:
NOTE - I use pop() here since it's in the examples but I think it's a bad idea. Poping the identifier removes it from the path array. If I go on to reuse the key, it's incomplete (e.g. if I did a get and update). I think entity.key.path[entity.key.path.length - 1] is a better idea.
Anyway, if I am returning thousands of entities I can write (using async.js) something like:
The problem I have is that (1) this is quite cumbersome (2) I haven't benchmarked but I'm sure there is a performance hit.
Is there a better way to do this ?