Python 没有引用的对象的GQL查询引用属性
我有以下模型,其中一个Python 没有引用的对象的GQL查询引用属性,python,google-app-engine,google-cloud-datastore,gql,Python,Google App Engine,Google Cloud Datastore,Gql,我有以下模型,其中一个事物可以有多个动作: class Thing(polymodel.PolyModel): create_date = db.DateTimeProperty(required=True) class Action(db.Model): thing = db.ReferenceProperty(Thing, collection_name='action') action_by = db.StringProperty(required=Tru
事物
可以有多个动作
:
class Thing(polymodel.PolyModel):
create_date = db.DateTimeProperty(required=True)
class Action(db.Model):
thing = db.ReferenceProperty(Thing, collection_name='action')
action_by = db.StringProperty(required=True)
我需要使用原始GQL来计算没有动作的对象的数量。应该是这样的:
SELECT * FROM Thing WHERE action = []
我有以下限制:
我必须使用原始GQL(因为实际查询包含常规查询不支持的DISTINCT)
我无法获取数据并检查内容,因为我使用的是远程api,只想计算要保存的数据
可以这样做吗?首先,您完全错误地认为必须使用GQL,因为普通查询不支持DISTINCT:使用GQL所做的任何事情都不能与普通查询相比。数据存储不是数据库,也没有ORM调用必须转换为的底层查询语言;相反,事实上,GQL调用以与模型调用完全相同的方式转换为RPC调用,使用GQL没有任何好处。在此特定情况下,具有一个distinct
参数
然而,数据存储不是SQL数据库的另一个含义是不能进行连接。无论是特定字段值还是不存在任何关系,都无法基于任何活动属性来选择对象的实例。这样做的唯一方法是获取Action.thing
的所有不同值,然后获取所有Things
,并计算出设置的差异。首先,如果说必须使用GQL是因为普通查询不支持DISTINCT,那就大错特错了:GQL所能做的一切都是普通查询所不能做的。数据存储不是数据库,也没有ORM调用必须转换为的底层查询语言;相反,事实上,GQL调用以与模型调用完全相同的方式转换为RPC调用,使用GQL没有任何好处。在此特定情况下,具有一个distinct
参数
然而,数据存储不是SQL数据库的另一个含义是不能进行连接。无论是特定字段值还是不存在任何关系,都无法基于任何活动属性来选择对象的实例。这样做的唯一方法是获取Action.thing
的所有不同值,然后获取所有Things
,并计算出设置的差异。首先,如果说必须使用GQL是因为普通查询不支持DISTINCT,那就大错特错了:GQL所能做的一切都是普通查询所不能做的。数据存储不是数据库,也没有ORM调用必须转换为的底层查询语言;相反,事实上,GQL调用以与模型调用完全相同的方式转换为RPC调用,使用GQL没有任何好处。在此特定情况下,具有一个distinct
参数
然而,数据存储不是SQL数据库的另一个含义是不能进行连接。无论是特定字段值还是不存在任何关系,都无法基于任何活动属性来选择对象的实例。这样做的唯一方法是获取Action.thing
的所有不同值,然后获取所有Things
,并计算出设置的差异。首先,如果说必须使用GQL是因为普通查询不支持DISTINCT,那就大错特错了:GQL所能做的一切都是普通查询所不能做的。数据存储不是数据库,也没有ORM调用必须转换为的底层查询语言;相反,事实上,GQL调用以与模型调用完全相同的方式转换为RPC调用,使用GQL没有任何好处。在此特定情况下,具有一个distinct
参数
然而,数据存储不是SQL数据库的另一个含义是不能进行连接。无论是特定字段值还是不存在任何关系,都无法基于任何活动属性来选择对象的实例。唯一的方法是获取Action.thing
的所有不同值,然后获取所有Things
,并计算出设置的差异。此外,您无法查询未设置值的内容,这与设置为None的内容不同。在上面的代码中,如果没有为引用属性提供键/对象,则没有可以查询的值。此外,无法查询未设置值的内容,这与设置为“无”的内容不同。在上面的代码中,如果没有为引用属性提供键/对象,则没有可以查询的值。此外,无法查询未设置值的内容,这与设置为“无”的内容不同。在上面的代码中,如果没有为引用属性提供键/对象,则没有可以查询的值。此外,无法查询未设置值的内容,这与设置为“无”的内容不同。在上面的代码中,如果没有为引用属性提供键/对象,则没有可以查询的值。您计划使用哪种数据量?也就是说,你对事物和事件实体的数量有什么期望?您需要多久进行一次此查询,以及您要求回答的时间有多及时?感谢您的回复。应该有成千上万的事情和大约相同数量的行动。查询每天应该运行几百次,主要的问题不应该是下载所有的数据,而应该只是计算数据。我知道我可以在GAE服务器上用python实现这一点,但我正在寻找一个更简单的解决方案(如果存在的话)?也就是说,你对事物和事件实体的数量有什么期望?你多久需要一次