1

我有一个键列表,它应该是 MyModel 实体的子级(但有些可能不是),我想在事务中获取这些键引用的实体。一种方法是:

ifilter(None, ModelX.all().ancestor(Y).filter('__key__', xk).get() for xk in xkeys)

但是为每个键运行单独的查询似乎效率低下。有没有办法在事务中的键列表上运行 IPN.get(),保留顺序,但忽略不属于实体组的那些,而不是抛出 BadRequestError?

4

2 回答 2

1

假设 xkeys 是一个键列表

results = [db.get(xk) for xk in xkeys]

但是,我认为你可以这样做:

results = db.get(xkeys)

哦,我刚刚读到你说的(但有些可能不是)。这就是问题。事务中涉及的所有实体必须在同一个祖先组中。因此,要完成这项工作,您必须从列表中删除不具有相同祖先的实体。

于 2012-12-12T06:04:04.810 回答
0

似乎没有办法按照我的要求做,所以我从事务中返回了密钥并在它之外做了一个 db.get(ks) 。

于 2012-12-20T18:50:08.360 回答