Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine 如何查询特定索引处的重复属性?_Google App Engine - Fatal编程技术网

Google app engine 如何查询特定索引处的重复属性?

Google app engine 如何查询特定索引处的重复属性?,google-app-engine,Google App Engine,我正在尝试将层次标签存储到重复属性中的数据。 例如。 ['Label','Sublabel','Sublabel2',…] 然后,我想通过“Label”或“Label”+“Sublabel”或“Label”+“Sublabel”+“Sublabel2”等查询实体(子)组 有没有办法在某个索引处查询重复的属性 我找到的示例仅显示使用IN运算符进行查询: Article.tags.IN(['python', 'ruby', 'php']) 但我想做一些类似的事情: Article.query(Ar

我正在尝试将层次标签存储到重复属性中的数据。
例如。 ['Label','Sublabel','Sublabel2',…]

然后,我想通过“Label”或“Label”+“Sublabel”或“Label”+“Sublabel”+“Sublabel2”等查询实体(子)组

有没有办法在某个索引处查询重复的属性

我找到的示例仅显示使用IN运算符进行查询:

Article.tags.IN(['python', 'ruby', 'php'])
但我想做一些类似的事情:

Article.query(Article.tags[0]=='python', Article.tags[1]=='ruby', Article.tags[2]=='php')
出于性能原因,我希望避免使用祖先

我想我可以使用AND,如果每个子(标签)在repeated属性中的位置上是唯一的。 例如


在这种情况下,查询会很慢吗?

我找到了另一种方法。我可以将标签存储在单个字符串中。例如,Label/Sublabel/Sublabel2,然后我可以使用前缀匹配按标签或Label/Sublabel等查找数据。例如:过滤其中标签>“id1/”和标签<“id1/”+u”\ufffd“其中u”\ufffd“表示可能的最大Unicode字符是,如果它看起来顺序对您有意义,那么对于重复属性来说,它不是一个好的用例——您的联合字符串方法是好的(当然,对于索引属性的最大长度,您通常会有1500字节的限制)。
Article.tags.query(ndb.AND(Article.tags == 'python',
                             Something.tags == 'ruby'))