beego ORM 所有多对多关系查询
示例models中,Article与Category为多对一关系,Article与Tag是多对多关系。
type Article struct {
ID int `orm:"column(id)"`
Title string `orm:"size(60)"`
Category *Category `orm:"null;rel(fk);on_delete(do_nothing)"`
Tags []*Tag `orm:"null;rel(m2m);on_delete(do_nothing)"`
Content string `orm:"type(text)"`
}
type Tag struct {
ID int `orm:"column(id)"`
Name string `orm:"size(30)"`
Articles []*Article `orm:"reverse(many)"`
}
type Category struct {
ID int `orm:"column(id)"`
Name string `orm:"size(30)"`
Articles []*Article `orm:"reverse(many)"`
}
假设浏览器请求文章目录信息,服务器需要返回的信息格式如下,也就是说对查询到的Article对象需要查询到其关联到的一个Category对象与所有Tag对象
[
{
"id": 1,
"title": "测试标题",
"Cateogry": "测试目录",
"tags": ["测试标签1", "测试标签2", "测试标签3"]
},
{
...其余Article对象
}
]
示例程序如下,
package main
import (
"fmt"

本文介绍了如何使用beego ORM在Go语言中处理多对多关系查询,包括通过指定expr获取所需数据和加载所有相关联的关系。示例展示了在文章目录查询中如何获取文章的分类及所有标签信息,强调了在实际应用中优化查询效率的重要性。

221

被折叠的 条评论
为什么被折叠?



