我有以下结构的数据:
{
"id": "1",
"title": "A Title",
"description": "A description.",
"listOfStrings": ["one", "two", "three"]
"keyA": {
"keyB": " ",
"keyC": " ",
"keyD": {
"keyE": " ",
"KeyF": " "
}
}
}我想把这个放到Google Datastore上。储存这个的最好方法是什么?
我应该使用实体组吗?
要求:
这个链接(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
发布于 2015-05-28 15:15:34
如果您希望能够按层次结构(keyA->keyB->keyC)进行查询,请使用祖先,或者仅仅使用一个类似于此的键,以避免实体组限制。如果您希望能够查询包含提供密钥的实体--创建一个计算属性,您将在其中存储一个存储在其中的键的平面列表。并将原始层次结构存储在JsonProeprty中。
发布于 2015-05-28 16:49:30
根据我的经验,您请求的实体越多,它就会变得越慢(性能越差)。用少量的数据制作大量的实体是不有效的。相反,将整个层次结构存储为一个JsonProperty,并使用代码遍历它。
如果KeyE只是一个字符串,那么添加一个属性KeyE = StringProperty(indexed=True)以便您可以对它进行查询。
https://stackoverflow.com/questions/30510423
复制相似问题