GAE ndb query!=标签

时间:2012-08-08 05:20:57

标签: google-app-engine google-cloud-datastore

在文档中,它说没有办法查询不包含等于特定值的标记的实体:https://developers.google.com/appengine/docs/python/ndb/queries#neq_and_in

我有一组实体,每个实体都有一组标签。我需要找到那些没有特定标签的实体。是否存在ndb查询限制的解决方法?

1 个答案:

答案 0 :(得分:2)

每次创建/更新实体时,它的索引都会根据其属性的值进行更新。

如果属性不存在或者list属性不包含值(在您的情况下为= tag),则索引中没有条目。由于查询依赖于索引来查找内容,因此无法找到它。

这不是NDB查询限制,而是GAE数据存储限制,这意味着访问它的所有API都有此限制(Java / Python / Go,低级API等)。

AFAIK,没有直接的解决方法。您可以通过获取所有文章然后检查缺少标记的代码来编写代码,但这可能会很昂贵,具体取决于文章的数量。

您可能想要创建一个新问题,并从应用程序的角度详细描述问题:您要实现的最终结果是什么?