Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app engine GAE ndb查询!=标签_Google App Engine_Google Cloud Datastore - Fatal编程技术网

Google app engine GAE ndb查询!=标签

Google app engine GAE ndb查询!=标签,google-app-engine,google-cloud-datastore,Google App Engine,Google Cloud Datastore,在文档中,它表示无法查询不包含等于特定值的标记的实体: 我有一组实体,每个实体都有一组标签。我需要找到那些没有特定标签的实体。ndb查询限制是否有解决方法?每次创建/更新实体时,都会根据其属性值更新其索引 如果属性不存在或列表属性不包含值(=本例中的标记),则索引中没有该属性的条目。因为查询依赖于索引来查找内容,所以不会找到它 这不是NDB查询限制,而是GAE数据存储限制,这意味着所有访问它的API都有此限制(Java/Python/Go、低级API等) 哎呀,没有直接的办法。您可以通过获取所有

在文档中,它表示无法查询不包含等于特定值的标记的实体:


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

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

如果属性不存在或列表属性不包含值(=本例中的标记),则索引中没有该属性的条目。因为查询依赖于索引来查找内容,所以不会找到它

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

哎呀,没有直接的办法。您可以通过获取所有文章,然后签入缺少标记的代码来绕过它,但这可能会根据文章的数量而付出高昂的代价


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

如果您的标记集很小,或者如果您要进行“无”查询的标记集很小,请添加“not_tags”属性(列表属性或“repeated=True”(如果使用ndb)属性)对实体也是如此。这将包含tags属性的倒数,或不包含子集的相应值。正如Peter在下面提到的,您将拥有一个可以查询的索引。如果您的标记集很大,这可能不起作用。