应用引擎,如何检查列表中的所有值是否都在数据的字符串列表中

2024-06-08 12:53:04 发布

您现在位置:Python中文网/ 问答频道 /正文

如果数据存储中的字符串列表具有以下值:

a、b、c

如何将它与列表进行比较,以便只有当字符串列表中的每个值都存在于列表中时它才会返回true?在

['a','b']将返回false

['a','b','c']将返回true

['a'、'b'、'c'、'd'、'e']将返回true

单独使用GQL是可能的还是我需要拉出字符串列表并在其上循环?在


Tags: 数据字符串falsetrue列表gql
3条回答

您可以以排序的方式将列表序列化为单个StringProperty。根据StringListProperty的内容,这可能与逗号分隔的值一样微不足道。在

您可以选择使用md5校验和之类的方法来减少存储和筛选的字符串的长度。在

来自the documentation

A query cannot compare two list values. There is no way to test two lists for equality without testing each element for membership separately.

所以我想你的比较也不可能直接比较。在

使用集合进行比较可能更有效,而不是在列表上循环。在

这是不可能的。您可以使用多个相等筛选器,并且查询将只匹配列表中至少包含这些项的实体(例如,“WHERE foo='a'and foo='b'”仅在foo是至少包含“a”和“b”)的列表时匹配。如果不使用不等过滤器或排序顺序来执行此操作,数据存储将使用内置的merge join策略来满足您的查询。在

然而,反规范化将提供更稳健的解决方案。例如,如果将列表序列化为单个字符串,则可以简单地检查与该字符串是否相等。在

相关问题 更多 >