首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Google中存储分层数据

在Google中存储分层数据
EN

Stack Overflow用户
提问于 2015-05-28 15:08:36
回答 2查看 508关注 0票数 0

我有以下结构的数据:

代码语言:javascript
复制
{
  "id": "1",
  "title": "A Title",
  "description": "A description.",

  "listOfStrings": ["one", "two", "three"]

  "keyA": {
    "keyB": " ",
    "keyC": " ",
    "keyD": {
      "keyE": " ",
      "KeyF": " "
    }
  } 
}

我想把这个放到Google Datastore上。储存这个的最好方法是什么?

我应该使用实体组吗?

要求:

  • 我不需要交易。
  • 必须具备阅读整个结构的表现力。
  • 必须能够基于KeyEs内容进行查询。

这个链接(Storing hierarchical data in Google App Engine Datastore?)提到对分层数据使用实体组,但是这个链接(How to get all the descendants of a given instance of a model in google app engine?)提到它们应该只用于事务,而我不需要这些事务。

我正在使用这个库(我认为它不支持ReferenceProperty?)。http://github.com/GoogleCloudPlatform/gcloud-ruby.git

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-28 15:15:34

如果您希望能够按层次结构(keyA->keyB->keyC)进行查询,请使用祖先,或者仅仅使用一个类似于此的键,以避免实体组限制。如果您希望能够查询包含提供密钥的实体--创建一个计算属性,您将在其中存储一个存储在其中的键的平面列表。并将原始层次结构存储在JsonProeprty中。

票数 2
EN

Stack Overflow用户

发布于 2015-05-28 16:49:30

根据我的经验,您请求的实体越多,它就会变得越慢(性能越差)。用少量的数据制作大量的实体是不有效的。相反,将整个层次结构存储为一个JsonProperty,并使用代码遍历它。

如果KeyE只是一个字符串,那么添加一个属性KeyE = StringProperty(indexed=True)以便您可以对它进行查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30510423

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档