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

Bar*_*man 6 google-app-engine gql gqlquery google-cloud-datastore

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

(PS我在GAE工作中使用Python).

Gwy*_*ell 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
Run Code Online (Sandbox Code Playgroud)