数据存储ListProperty查询不一致

问题描述 投票:1回答:1

我正在尝试在名为“numericRange”的ListProperty字段上运行查询。对于此字段,有一行具有值[“3”,“5”]。我想验证值“4”是否属于此范围。

如果我在GQL控制台上运行下一个查询,数据存储区会返回结果(因为第一个值为“3”,匹配):

select * from example where numericRange<=4

如果我运行下一个查询,数据存储区也会返回结果(因为第二个值为“5”,匹配):

select * from example where numericRange>=4

但是,如果我运行下一个查询,数据存储区不会返回结果:

select * from example where numericRange<=4 and numericRange>=4

为什么它适用于第一个和第二个查询,但不适用于第三个查询?

先感谢您。

google-cloud-platform google-cloud-datastore
1个回答
1
投票

Cloud Datastore会展开索引列表。因此,您的查询numericRange <= 4和numericRange> = 4正在检查索引以查看是否(3 <= 4和3> = 4),以及if(5 <= 4和5> = 4)。如您所见,索引中的值为flattened,当numericRange在列表中的值恰好为4时,第3个查询将仅返回结果。

© www.soinside.com 2019 - 2024. All rights reserved.