数据存储无用查询与按键访问的性能是什么?

时间:2017-11-26 03:58:58

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

虽然我们的系统只有唯一的密钥,但我们愿意使用种类来更好地组织和运行一些操作。 Edited->这意味着我事先不知道ID会是什么样的。

查询我们拥有的所有类型的ID非常有用。

Datastore does have this option。我想要做的是创建一个这样的查询:

const query = datastore.createQuery()
  .filter('__key__', '=', uniqueKey)
  .limit(1);

以特定类型的密钥替换访问权限。

由于我们经常通过密钥和密钥访问进行访问被认为是small operation(因此成本更低),我试图弄清楚上面的代码是否会像密钥访问一样好。

1 个答案:

答案 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'
]);