如何获取实体而不指定其祖先?

时间:2016-03-11 10:43:57

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

我正在使用Google Cloud node.js gcloud库并尝试获取使用祖先密钥保存的实体。

令我惊讶的是,如果没有指定其祖先密钥,我将无法获得该实体。

const ds = gcloud.datastore.dataset(config);
 ...
ds.get(key, (err, entity)=>{
   return entity;
});

1 个答案:

答案 0 :(得分:0)

您实体的唯一标识符是完整路径,实体的ID /名称不是全局唯一的。

举个例子,我们假设您正在建模一个包含文件夹和文件的基本文件系统。文件夹是父实体,文件是子实体。例如,您可能拥有以下数据:

  • 文件实体:name ='readme.txt',ancestor = ['Folder','getting-started']
  • 文件实体:name ='readme.txt',ancestor = ['Folder','third-party-libs']

如果不指定祖先,系统无法消除您尝试引用的“readme.txt”的歧义。