虽然我们的系统只有唯一的密钥,但我们愿意使用种类来更好地组织和运行一些操作。 Edited->这意味着我事先不知道ID会是什么样的。
查询我们拥有的所有类型的ID非常有用。
Datastore does have this option。我想要做的是创建一个这样的查询:
const query = datastore.createQuery()
.filter('__key__', '=', uniqueKey)
.limit(1);
以特定类型的密钥替换访问权限。
由于我们经常通过密钥和密钥访问进行访问被认为是small operation(因此成本更低),我试图弄清楚上面的代码是否会像密钥访问一样好。
答案 0 :(得分:0)
您提到的过滤功能主要用于您事先不知道密钥,过滤等的情况。
您不应该执行此类查询以获取与该密钥匹配的单个实体(如果有)。只需通过直接键查找(实际上是哪个键访问)来检索实体,这是推荐的方法。来自Retrieving an entity:
要从Cloud Datastore检索实体,请使用其密钥进行查找:
datastore.get(taskKey) .then((results) => { // Task found. const entity = results[0]; // entity = { // category: 'Personal', // done: false, // priority: 4, // description: 'Learn Cloud Datastore' // }; console.log(entity); });
您也不需要查询某种ID,而是可以构建相应的密钥(即本地操作,不会访问数据存储区)并执行它们的密钥抬头。来自Kinds and identifiers:
以下示例使用密钥名称创建类型为
Task
的密钥, " sampleTask",作为标识符:const taskKey = datastore.key([ 'Task', 'sampleTask' ]);