diff --git a/gcloud/datastore/query.py b/gcloud/datastore/query.py index 3604db1eb04a..86dd5a2d56eb 100644 --- a/gcloud/datastore/query.py +++ b/gcloud/datastore/query.py @@ -246,6 +246,10 @@ def projection(self, projection): projection = [projection] self._projection[:] = projection + def keys_only(self): + """Set the projection to include only keys.""" + self._projection[:] = ['__key__'] + @property def order(self): """Names of fields used to sort query results. diff --git a/gcloud/datastore/test_query.py b/gcloud/datastore/test_query.py index 20cd4d210811..1445b8494671 100644 --- a/gcloud/datastore/test_query.py +++ b/gcloud/datastore/test_query.py @@ -250,6 +250,12 @@ def test_projection_setter_multiple_calls(self): query.projection = _PROJECTION2 self.assertEqual(query.projection, _PROJECTION2) + def test_keys_only(self): + _KIND = 'KIND' + query = self._makeOne(_KIND) + query.keys_only() + self.assertEqual(query.projection, ['__key__']) + def test_order_setter_empty(self): _KIND = 'KIND' query = self._makeOne(_KIND, order=['foo', '-bar'])