1

我想查询一个实体,但在结果中排​​除了一堆我不想要的键/ID。这样做的最佳方法是什么?

我想也许 .IN 运营商会帮助我,但无法弄清楚如何。

因此,我提出了以下链接单键排除的解决方案:

q = models.Comment.query()
for exclude_key in list_of_comment_keys_to_exclude:
  q = q.filter( models.Comment.key != exclude_key )
q = q.order( models.Comment.key ) # without this: BadRequestError: The first sort property must be the same as the property to which the inequality filter is applied.
q = q.order( models.Comment.creationTime )

这似乎可行,但这是一种可行的方法吗?

4

1 回答 1

7

这可能有效,但效率相当低。在获得所有结果后,排除用户代码中的单个键会更便宜。例如:

q = models.Comment.query().order(...)
results = [res for res in q.fetch() if res.key not in list_of_comment_keys_to_exclude]
于 2013-01-08T19:00:28.787 回答