繁体   English   中英

Google数据存储区查询中的多项选择抛出ApiError:节点中的前提条件失败错误

[英]Multiple select in google datastore query throwing ApiError: Precondition Failed error in node

我正在使用以下查询从Google数据存储中检索一些实体:

 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“ Precondition Failed”错误。 我的实体如下所示: 实体属性

您需要创建一个多属性索引才能使用多属性查询。

由于您未使用App Engine,因此需要手动创建这些索引。

这里有一个涵盖此内容的教程。

步骤如下:

  1. 安装Java 7运行时(或更高版本) http://java.com/
    • 我建议使用已经安装并配置了Java的Cloud Shell
  2. 创建一个名为WEB-INF的文件夹
  3. 在该文件夹中,您需要三个文件:
  4. 在datastore-indexes.xml文件中,您需要定义多属性索引。 请遵循文档
  5. 安装gcd工具
  6. 最后,运行gcd工具(WEB-INF文件夹上方的一个目录)
    • Linux / Mac path/to/gcd.sh updateindexes --auth_mode=oauth2 .
    • Windows path/to/gcd.cmd updateindexes --auth_mode=oauth2 .

几分钟后,应该创建索引。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM