如何在appengine python中查询没有祖先的实体

时间:2015-11-12 07:15:48

标签: python google-app-engine google-cloud-datastore app-engine-ndb

请考虑以下代码段:

from google.appengine.ext import ndb
import pprint

class Entity(ndb.Model):
     name = ndb.StringProperty()
     age = ndb.IntegerProperty()

entity = Entity()
entity.name = "hello"
entity.age = 23
entity.key = ndb.Key(Entity, "p1")
entity.put()

e2 = Entity()
e2.key = ndb.Key(Entity, "p2", parent=ndb.Key(Entity, "p1"))
e2.name = "he11o2"
e2.age = 34
e2.put()

我想查询没有任何内容的实体表记录 与之相关的父母。对于上面的例子,它应该只产生p1实体。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

你不能。您只能查询索引中存在的内容。没有任何价值的东西,除非明确地设置为无(并且你不能为父母这样做),不能被查询。

我建议的唯一方法是拥有一个计算属性或一些其他属性,如果没有父元素或父键或标志,则设置为无。然后,您可以查询parent = None的所有实体。 parent是该实体的财产。