使用AppEngine NodeJS Standard的过滤器进行Cloud Datastore Projection查询

时间:2018-07-17 03:00:16

标签: node.js google-app-engine google-cloud-platform google-cloud-datastore

我正在学习GCP,并且已经搜索了文档。 Projection查询文档指出它们可以与过滤器一起使用,尽管有一些限制。据我了解,我不在限制范围之内,但仍然无法使其发挥作用。

我想做的是一个简单的

def

该属性被标记为已索引,我还部署了index.yaml。我的代码如下

Cell(…)

注释选择行时,查询有效。在对过滤器行进行注释时,它也可以工作,但是在同时运行这两者时,我在邮递员中收到以下消息。

SELECT property FROM kind WHERE enabled = TRUE 

我的日志仅显示400状态错误。

任何帮助将不胜感激

编辑:

这是完整的代码。我有一个指示名称语言的参数。在数据库中,我具有nameEn和nameEs作为属性,因此我只想返回所选语言的名称。 enabled是一个布尔型属性,指示产品是否处于活动状态。

  const selectQuery = programTypeQuery
     .select(entityNameProperty)
     .filter('enabled',true);

2 个答案:

答案 0 :(得分:1)

根据您提供的详细信息,很难检测到此问题的起源。您可以将Google APIs Explorer用于Datastore API并尝试查询吗?我已根据您的描述准备了请求正文,您可以单击here并通过更改projectId来执行它。这样,您将收到成功的响应或一条包含详细信息的错误消息,可能更容易从此处检测根本原因。

答案 1 :(得分:0)

您很可能错过了composite index definition。您应该能够在stackdriver中查看GAE日志,以查看从Cl​​oud Datastore返回的错误消息。

由于属性名称是动态的,因此您将无法有效使用复合索引。您可能需要将数据模型更改为不使用动态属性名称的内容。