Google云数据存储+ golang +嵌入式实体

时间:2016-11-10 00:32:06

标签: go google-cloud-datastore entities

我已经工作的一个包API dev的便利,即验证输入数据(根据一个模式的结构,每个字段名称映射到值valdator / formator等)...我伤心地看到,数据存储区不不希望我的有效负载= map [string] interface {} ...

然后我使用PropertyLoadSaver接口进行了一些操作,根据结构的值构造一个属性片。所有的指标都是指针(数据存储区不接受excep struct),我使用它是为了不为非提供的值存储零值,但如果指针为零则忽略它... 它工作得很好,当我想使用带有指针字段的嵌入式结构时问题就出现了...我想我只想添加一个带有名称的属性,以及类型为“entity”的值......这个实体有一个零键和属性(内部字段)......

我认为这会让我处理绑定到像

这样的结构的json POST
Type Outer struct {
  A *string
  B *int
  i *Inner
}

Type Inner struct {
  C *bool
  D *float64
}

...然后我会充分利用nosql无模式和灵活的功能,拥有可以具有我或不可选属性的实体,部分或全部填充(c和d也可以是可选的)... < / p>

这样会更轻,仅存储提供的数据并忽略其他属性(可以手动创建各种形式的实体的数据存储区GUI)...检索轻量级结构,如果未设置则加载属性时将nil设置为指针值在从db检索到的数据存储区实体中,因此不向用户显示“坏”零值,但不显示以前未提供和存储的内容...

在数据存储区的gui中,手动创建实体,您可以设置“嵌入实体”类型的属性...这正是我想要做的,但是在保存之前向属性切片添加属性时(在“datastore.Entity”类型的“propertyloadsaver兼容结构”的save方法中,nil键和属性列表匹配内部结构的属性片...我收到了“具有名称cinfo的属性的无效值”... ...

有什么想法吗?

0 个答案:

没有答案
相关问题