【问题标题】:Gql query for repeated StructuredProperty重复结构化属性的 Gql 查询
【发布时间】:2015-01-21 01:54:40
【问题描述】:

如何在 GQL 中编写以下查询? [1]

Contact.query(Contact.address == Address(city='San Francisco',
                                         street='Spear St'))

[1]Filtering for Structured Property Values

【问题讨论】:

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


    【解决方案1】:

    引用 https://cloud.google.com/appengine/docs/python/ndb/queries#gql ,“要查询包含结构化属性的模型,您可以在 GQL 语法中使用 foo.bar 来引用子属性”——如果我正确理解您的任务,

    '''SELECT * FROM Contact 
       WHERE address.city='San Francisco' AND
             address.street='Spear St'
    '''
    

    应该可以。不是吗?

    【讨论】:

    • 不,它没有。该查询与以下内容相同:` Contact.query(Contact.address.city == 'Amsterdam', # Beware! Contact.address.street == 'Spear St')` >可能会找到地址为 ' 的联系人阿姆斯特丹”和另一个(不同的)地址,其街道为“Spear St”。
    • 在这里查看源代码cloud.google.com/appengine/docs/python/refdocs/modules/google/… 我认为数据库不直接支持您尝试执行的查询。我认为 NDB 库正在做类似上面的事情,然后验证正确的属性在“内存中”(在应用程序层)具有正确的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多