pnmtu13894 pnmtu13894 - 1 month ago 4x
Python Question

How to retrieve entities from Google Cloud Datastore

I have some problems with Cloud Datastore in Google App Engine.

I have 2 Models in the database which are:

class Product(ndb.Model):
name = StringProperty(required=True)
category = KeyProperty(kind=Category)
description = TextProperty(required=True)
price = IntegerProperty(required=True)


class Category(ndb.Model):

So how can i get all the datas from Product Class that belong to a certain Category?

In Relational SQL i used:

SELECT * FROM Product WHERE category = 'CertainName';

Thank you!


The following should perform what your sql query is doing:

query = Product.query(Product.category == "CertainName") # Note the "=="


I just realized you need to filter by key(thank you @mgilson). The query changes a little. Basically you just need to first get your category_entity and then apply the filter like this:

query = Product.query(Product.category == category_entity.key)

where, for example, you could fetch a category_entity like shown below:

category_entity = Category.query( == "SomeCat").fetch()

Refer to for more info (look at query_purchases_for_customer_via_key)