ECC*_*ECC 2 python-3.x google-cloud-datastore google-cloud-platform gcloud
我是数据存储区 gCloud 的新手。我想在一个名为 Score 的实体中过滤与公司列表相关的所有分数。我的实体的构成如下:
\n\n{\n\xc2\xa0\xc2\xa0\xc2\xa0 "company_id": 1,\n\xc2\xa0\xc2\xa0\xc2\xa0 "score": 100, \n}\nRun Code Online (Sandbox Code Playgroud)\n\n我有几个具有不同公司 ID 的实体。我尝试使用 query.add_filter 命令进行过滤,但收到错误 ValueError:
\n\n\n\n\n(\'无效表达式:“IN”\',\'请使用以下之一:=、<、<=、>、> =。\')
\n
错误的原因对我来说非常清楚,但除了上述错误消息中列出的类型之外,我还没有在文档中找到有关如何使用 IN 或 CONTAINS 运行过滤器的任何内容。
\n数据存储不支持您寻找的过滤器运算符。过滤器中列出了唯一受支持的:
比较运算符可以是以下任意一种:
Run Code Online (Sandbox Code Playgroud)Operator Meaning EQUAL Equal to LESS_THAN Less than LESS_THAN_OR_EQUAL Less than or equal to GREATER_THAN Greater than GREATER_THAN_OR_EQUAL Greater than or equal to
某些客户端库可能提供一些等效项,但有限制。例如,标准环境 GAE 特定ndb库(在您的上下文中不可用)提供了此类支持。!= 和 IN 操作中的示例非常有用,因为您可以在代码中以类似的方式实现它:
类似地,IN 操作
Run Code Online (Sandbox Code Playgroud)property IN [value1, value2, ...]它测试可能值列表中的成员资格,实现为
Run Code Online (Sandbox Code Playgroud)(property == value1) OR (property == value2) OR ...
| 归档时间: |
|
| 查看次数: |
1202 次 |
| 最近记录: |