【发布时间】:2018-12-24 15:19:55
【问题描述】:
我正在学习 GCP,并已搜索文档。投影查询文档指出它们可以与过滤器一起使用,尽管有一些限制。据我了解,我没有落入限制范围内,但我仍然无法使其发挥作用。
我想做的很简单
SELECT property FROM kind WHERE enabled = TRUE
属性被标记为索引,我还部署了一个 index.yaml。我的代码如下
const selectQuery = programTypeQuery
.select(entityNameProperty)
.filter('enabled',true);
注释选择行时,查询有效。在评论过滤器行时,它也可以工作,但是当同时运行两者时,我在邮递员中收到以下消息。
{
"code": 9,
"metadata": {
"_internal_repr": {}
},
"note": "Exception occurred in retry method that was not classified as transient"
}
我的日志只显示 400 状态错误。
任何帮助将不胜感激
编辑:
这是完整的代码。我有一个参数,指示名称的语言。在数据库中,我有 nameEn 和 nameEs 作为属性,所以我只想返回所选语言的名称。 enabled 是一个布尔属性,指示产品是否处于活动状态。
const Datastore = require('@google-cloud/datastore');
const datastore = Datastore();
const programTypeQuery = datastore.createQuery('programType')
entityNameProperty = 'name' + req.params.languageCode
const selectQuery = programTypeQuery
.select(entityNameProperty)
.filter('enabled',true);
selectQuery.runQuery()
.then((results) => {
res.json(results);
})
.catch(err => res.status(400).json(err));
【问题讨论】:
-
programTypeQuery和entityNameProperty在你的情况下是什么? -
在sample code 中有 .createQuery() 在您的 sn-p 中丢失。你丢弃它有什么具体原因吗?
-
感谢您的回复,我已添加完整代码
标签: node.js google-app-engine google-cloud-platform google-cloud-datastore