Google App Engine - 查询包含值的数组

时间:2013-09-10 13:32:02

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

我有一个GAE数据存储表,其中包含一个数组字段(包含几个字符串)。 我想基于包含特定字符串的所有数组字段来过滤此表。 我怎样才能做到这一点 ? 我没有在GQL中看到'包含'运算符,而'in'运算符则以相反的方式运行。 我只需要遍历所有实体并自己进行检查吗?

(P.S。我在GAE工作中使用Python)。

1 个答案:

答案 0 :(得分:6)

只需使用equals,例如:

class MyModel(db.Model):
  colors = db.StringListProperty()

MyModel(colors=['red', 'blue']).put()
MyModel(colors=['green', 'blue']).put()
MyModel(colors=['red', 'green']).put()

color = 'red'
query = MyModel.gql('WHERE colors = :1', color)
models = query.fetch(10)

assert len(models) == 2