我目前正在决定将哪个堆栈用于(小型)社交网络。我很想在 Google App Engine 之上用 golang 编写它,因为这将产生干净、快速的代码,并具有现代云服务和托管的所有优点。您将如何使用 golang 在 GAE 中实现一对多和/或多对一关系?根据文档,您可以在数据存储结构中使用自己的类型,只要它们的属性是文档中提到的属性。例如:type Comment struct { Title string Text string User *User }type Photo struct { Description string Comments []*Comment}应该在我看来有效,对吗?如果我是对的,我该如何:a) 在一个查询中填充这种关系?b) 以方便的方式为照片添加评论?(例如 MongoDB '$push')
1 回答
明月笑刀无情
TA贡献1828条经验 获得超4个赞
在 App Engine 上,您可以使用两种实体类型对此进行建模:
type Comment struct {
Title string
Text string
User *User
}
type Photo struct {
Description string
}
使用祖先路径将子评论与父照片相关联。您可以在一个查询中获得一张照片的所有评论。您可以通过放置新的评论实体来添加评论。
我认为您可以使用问题中的类型存储照片(根据文档,您似乎可以,但我没有在实体中嵌套三个级别的个人经验)。要使用此设计添加评论,应用程序获取照片(这将包括评论),将评论添加到照片,并将带有所有评论的照片放回数据存储。
App Engine 没有像 Mongo 的 $push 那样的实体修改运算符。
- 1 回答
- 0 关注
- 191 浏览
添加回答
举报
0/150
提交
取消