ndb查询不包括多个键或id

时间:2013-01-07 22:55:41

标签: app-engine-ndb

我想查询一个实体,但是在结果中排​​除了一些我不想要的键/ 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 )

这似乎有用,但这是一个可行的方法吗?

1 个答案:

答案 0 :(得分:6)

这可能有用,但效率很低。在获得所有结果后,在用户代码中排除单个密钥会更便宜。 E.g:

q = models.Comment.query().order(...)
results = [res for res in q.fetch() if res.key not in list_of_comment_keys_to_exclude]