我想使用ListStringProperty做两个操作如何选择一个并由所有人选择?
让我解释一下我有这样的数据:
Something(db.Model):
tags: StringListProperty()
Something(tag = ['black', 'high']).put()
Something(tag = ['black', 'low']).put()
Something(tag = ['white', 'high']).put()
Something(tag = ['white', 'low']).put()
我想选择所有Something
为'high'或'black' - 如何使用查询进行操作?
我想选择所有Something
为'高'和'黑' - 如何使用查询?
Something.all()。filter('tag','black')。filter('tag','high')for和?
如何做Something.all()。filter('tag','black')+ Something.all()。filter('tag','high')?
答案 0 :(得分:1)
AND:Something.all()。filter('tag =','black')。filter('tag =','high')
OR:Something.all()。filter('tag IN',['black','high'])
答案 1 :(得分:0)
我认为并且不可能,或者肯定是可能的。只需做一些像Something.all()。filter('tag','black')。filter('tag','high'),在这里阅读更多https://developers.google.com/appengine/docs/python/datastore/queries
如果你的列表只包含很少的元素,而AND运算符只包含少数元素,你可以通过附加元素来实现技巧。例如,如果您的AND操作仅适用于2个元素,则可以存储“blackhigh”,“blacklow”,“whitehigh”,“whitelow”等,基本上存储nCk元素,其中K是AND运算符的操作数个数