1

我假设我想在 Google App Engine 数据存储中检查其存在的 1000 个键名,但不获取实体本身。除了可能的加速之外,原因之一是仅获取密钥是免费的(免费)。

ndb.get_multi()允许我传入键列表,但它会检索实体。我需要一个函数来做到这一点,但不获取实体,而只是TrueFalse基于指定的键是否存在。

4

1 回答 1

2

我可能会使用仅键查询...:

q = EntityKind.query(EntityKind.key.IN(wanted_keys))
keys_present = set(q.iter(keys_only=True))

这为您keys_present提供了一组实际存在于数据存储中wanted_keys键。与您想要的从键到布尔的映射不太一样,但是后者可以很容易地构建:

key_there = {k: (k in keys_present) for k in wanted_keys}

...如果您真的想要它(dict带有bool值的 a 通常更可能是一个不太实用的 hack set!-)。

于 2015-03-26T03:53:09.173 回答