我正在尝试使用Golang在Google的数据存储中为单个属性保存多个值。
我有一个int64,我希望能够存储和检索。从文档中,我可以看到通过实现PropertyLoadSaver
{}接口对此提供了支持。但我似乎无法提出正确的实施方案。
本质上,这就是我要完成的工作:
type Post struct {
Title string
UpVotes []int64 `json:"-" xml:"-" datastore:",multiple"`
DownVotes []int64 `json:"-" xml:"-" datastore:",multiple"`
}
c := appengine.NewContext(r)
p := &Post{
Title: "name"
UpVotes: []int64{23, 45, 67, 89, 10}
DownVotes: []int64{90, 87, 65, 43, 21, 123}
}
k := datastore.NewIncompleteKey(c, "Post", nil)
err := datastore.Put(c, k, p)
但是没有“数据存储:无效的实体类型”错误。
默认情况下,AppEngine支持多值属性,您无需执行任何特殊操作即可使其工作。您不需要实现PropertyLoadSaver
接口,也不需要任何特殊的标记值。
如果struct字段是切片类型,则它将自动为多值属性。此代码有效:
type Post struct {
Title string
UpVotes []int64
DownVotes []int64
}
c := appengine.NewContext(r)
p := &Post{
Title: "name",
UpVotes: []int64{23, 45, 67, 89, 10},
DownVotes: []int64{90, 87, 65, 43, 21, 123},
}
k := datastore.NewIncompleteKey(c, "Post", nil)
key, err := datastore.Put(c, k, p)
c.Infof("Result: key: %v, err: %v", key, err)
当然,如果您愿意,可以为json和xml指定标签值:
type Post struct {
Title string
UpVotes []int64 `json:"-" xml:"-"`
DownVotes []int64 `json:"-" xml:"-"`
}
笔记:
但是请注意,如果索引了多值属性,则该属性不适合存储大量值。这样做将需要许多索引(许多写入操作)才能存储和修改实体,并且可能会达到实体的索引限制(有关更多详细信息,请参见索引限制和爆炸索引)。
因此,例如,您不能使用多值属性存储的上,下投票数Post
。对于您应该存储票作为单独/不同实体链接到Post
由如Key
的Post
或最好只是它IntID
。
问题内容: 目前我正在使用这样的东西: 但是事实证明,AppEngine上的数据存储区中的ID不是从1开始的。我在数据存储区中有两个图像,其ID为6001和7001。 有没有更好的方法来检索随机图像? 问题答案: 数据存储是分布式的,因此ID是非顺序的:两个数据存储节点需要能够同时生成ID而不会引起冲突。 要获得随机实体,可以在创建时将0到1之间的随机浮点数附加到每个实体。然后进行查询,执行以下操
问题内容: 我正在尝试决定是否应针对App引擎关联的Android项目使用App引擎搜索API或数据存储区。Google文档的唯一区别是 …索引搜索最多只能找到10,000个匹配的文档。App Engine数据存储区可能更适合需要检索非常大的结果集的应用程序。 鉴于我已经非常熟悉数据存储区:假设我不需要10,000个结果,有人可以帮我吗? 是否有任何优势,利用与使用数据存储为我的查询(根据上面的报
出于监管和安全的原因,我不得不将Spring boot应用程序的逻辑拆分为两个工具:一个用于管理有限数量的表,另一个用于“真正的”用户应用程序。因此,我在服务器版本5.7上有两个MySQL数据库实例。虽然用户工具只访问一个包含几十个表的数据库,但管理工具需要访问两个数据库中的实体。 这些工具都是基于JavaFX和Spring Boot的。由于这种体系结构设置,我有三个maven包:一个用于管理工具
问题内容: 我正在尝试使用他们的电子邮件地址在appengine数据存储区中查找用户。我正在使用Go。 此代码找不到任何用户。 如果我更改查询以使用“ Id”属性查找用户,则可以正常工作。 我已经确认“ AccountEmail”的属性名称和值正确。“ AccountEmail”它也被索引。 为了使查询正常工作,是否需要使用电子邮件地址进行某些特殊格式设置? 问题答案: 为了通过电子邮件()查找用
问题内容: 要放置在数据存储区中的对象将具有一组标签。 在Python中,Google App Engine具有列表属性的概念。Java(如果存在)中的等效概念是什么?如何在Java,JPA和/或JDO中使用列表属性? 问题答案: 确切地看到我的博客文章:具有关系索引实体的有效关键字搜索和Google数据存储区的Objectify。它讨论了使用关系索引实体和Objectify通过列表属性实现搜索。
问题内容: 我想呈现输入的HTML5属性,以便可以将jquery图像选择器与react一起使用。我的代码是: 问题是即使正确地以a形式传递,它也不会在HTML中呈现- 只是呈现为。如何使变量正确传递到HTML? 问题答案: 您不应将JavaScript表达式用引号引起来。 查看JavaScript Expressions文档以获取更多信息。