2010-05-26 44 views
0

我正在使用低级别的谷歌数据存储api,我想查询的关键属性和另一个属性(让我们称之为类别)。谷歌数据存储关键属性的低级别API查询

我需要根据我将使用IN运算符的键列表进行查询。我知道最大的。值的数量,你可以提供IN子句是30

我有2个问题:

  1. 是否的30值的限制适用于关键属性呢?
  2. 我是否需要在{__key__ + category}上创建一个复合索引,或者仅针对此查询的{category}创建一个复合索引?

感谢, Keyur

回答

1
  1. 没有,极限是只在IN值。
  2. 不,你不需要索引。

但是,如果您可以避免执行IN查询,那么IN-查询将在内部评估为多个相等查询,IN中每个元素一个查询。

+0

谢谢,尼克。除IN以外,还有另一种方法可以过滤一组键吗? DatastoreService.get(keys)返回与密钥对应的所有实体,但不允许我在其上应用另一个过滤器。 – Keyur 2010-06-01 18:07:20

+0

检索列表中的所有键,然后手动过滤。它仍然比每个实体做一个查询要快得多! – 2010-06-01 21:36:34

+0

如果我有一百万个密钥,并且需要查找当前有多少个密钥存在于这百万个密钥中,该怎么办? – Nischal 2011-02-06 04:04:46