谷歌数据存储查询中的多项选择抛出 API 错误:前提条件节点中失败错误
Multiple select in google datastore query throwing ApiError: Precondition Failed error in node
我使用以下查询从谷歌数据存储中检索一些实体:
var query = datastore.createQuery(namespace,tableName);
query.select(['displayName','username']);
datastore.getEntitySet(query,function(err,data){
if(err){
res.status(500).end();
}
else{
res.send(data);
}
});
如果我只选择一个属性,上面的代码工作正常,即
query.select('username');
但是对于多选,它抛出 412"前提条件失败"错误。 我的实体如下所示:实体属性
您需要创建多属性索引才能使用多属性查询。
由于您未使用 App 引擎,因此需要手动创建这些索引。
我这里有一个教程来涵盖这一点。
以下是步骤:
- 安装 Java 7 运行时(或更高版本)http://java.com/
- 我建议使用已经安装和配置了Java的Cloud Shell。
- 创建一个名为 WEB-INF 的文件夹
- 在该文件夹中,您需要三个文件:
- appengine-web.xml (将YOUR_PROJECT_ID_HERE替换为您的项目 ID)
- 网络.xml
- 数据存储索引.xml(删除我用于示例的索引)
- 在数据存储索引.xml文件中,需要定义多属性索引。按照文档进行操作。
- 安装 gcd 工具
- 最后,运行 gcd 工具(WEB-INF 文件夹上方的一个目录)
- Linux/Mac
path/to/gcd.sh updateindexes --auth_mode=oauth2 .
- 视窗
path/to/gcd.cmd updateindexes --auth_mode=oauth2 .
- Linux/Mac
几分钟后,应创建索引。
相关文章:
- 为什么不'当单元测试出现解析错误时,我的因果报应测试会失败
- jQuery.getJSON失败,语法错误
- Ajax错误检查-如果Ajax请求失败,如何防止内容发生更改
- 断言错误:断言失败:坐标数组的长度应与步幅匹配
- SonarQube 预览模式失败,并显示 500 错误
- AJAX 请求不会在 400 个错误查询上执行失败
- 错误“由于与数据库无关的原因,操作失败..“,在 Firefox 中使用 indexedDB 时
- getUserMedia在Firefox上给出错误,在Chrome上静默失败
- 未捕获的错误:断言失败:余烬视图需要 1.7 和 2.1 之间的 jQuery
- 反应错误“失败的 propType:提供给”提供者“的无效道具'子项',需要单个 ReactElement'
- 分析错误失败-What'It’他错了
- webpack配置警告和错误:;模块解析失败”;
- 谷歌地图API多段线创建失败;未捕获类型错误:数字不是函数;
- AngularFire 0.5美元移除.错误:Firebase.child失败:第一个参数是无效路径
- JS中的条件运算符-失败的语法错误
- 正在运行'成员服务器'导致生成失败并出现EEXIST错误
- 云代码(javascript)失败,原因是:{代码:1,消息:内部错误
- jqxGrid失败并出现错误“;Object[Object Object]没有方法'jqGrid'&”;
- 错误:打开Robot Framework日志失败
- 我收到此错误失败:http://premieroptie.nl/wp-content/themes/theme51771