我想查询一个实体,但是在结果中排除了一些我不想要的键/ 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 )
这似乎有用,但这是一个可行的方法吗?
答案 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]