我是Datastore gCloud的新蜜蜂。我想在一个名为Score的实体中过滤所有与公司列表相关的分数。我的实体形成如下:
{
"company_id": 1,
"score": 100,
}
我有几个拥有不同公司ID的实体。我尝试使用query.add_filter命令进行过滤,但得到错误ValueError:
('无效的表达式:“IN”','请使用以下之一:=,<,< =,>,> =。')
错误的原因对我来说非常清楚,但除了上面错误消息中列出的类型之外,我还没有在文档中找到有关如何使用IN或CONTAINS运行过滤器的任何内容。
答案 0 :(得分:3)
数据存储区不支持您搜索的过滤器运算符。唯一受支持的列表在Filters中列出:
比较运算符可以是以下任何一种:
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
库(在您的上下文中不可用)提供此类支持。 The != and IN Operations中的示例非常有用,因为您可以在代码中以类似的方式实现它:
同样,IN操作
property IN [value1, value2, ...]
测试可能值列表中的成员资格,是 实施为
(property == value1) OR (property == value2) OR ...