Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 没有引用的对象的GQL查询引用属性_Python_Google App Engine_Google Cloud Datastore_Gql - Fatal编程技术网

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实现这一点,但我正在寻找一个更简单的解决方案(如果存在的话)?也就是说,你对事物和事件实体的数量有什么期望?你多久需要一次