为了账号安全,请及时绑定邮箱和手机立即绑定

如何编写多类别的目录(分类法>>100)?

如何编写多类别的目录(分类法>>100)?

Go
开心每一天1111 2021-09-13 20:12:32
我是 golang 的新手,他是从动态类型语言迁移过来的。我面临着如何编写具有许多类别/子类别的目录的问题——复杂的分类法。例如:鞋带 > 鞋履 > 男装 > 鞋履 > 服装 > 首页 > 分类我使用 mongodb 作为后端。在这种情况下,我无法理解如何编写 CRUD 操作?如果我像往常一样处理所有查询:func RunFindAllQuery(document interface{}, m bson.M, mongoSession *mgo.Session, conn Conn) (err error) {sessionCopy := mongoSession.Copy()defer sessionCopy.Close()collection:= sessionCopy.DB(conn.Database).C(conn.Collection)   err = collection.Find(m).All(document)if err != nil {    log.Printf("RunQuery : ERROR : %s\n", err)}   return err}我需要定义很多类型:鞋子!= 汽车。type Shoes struct {    Id             bson.ObjectId `bson:"_id"`    Name           string        `bson:"name"`    Description    string        `bson:"descriprion"`    Size           float         `bson:"size"`    Color          float         `bson:"color"`    Type           float         `bson:"type"`    ShoeHeight     float         `bson:"shoeheight"`    PlatformHeight float         `bson:"platformheight"`    Country        float         `bson:"country"`}type Car struct {    Id          bson.ObjectId `bson:"_id"`    Name        string        `bson:"name"`    Model       CarModel      `bson:"name"`    Description string        `bson:"descriprion"`    Color       float         `bson:"color"`    Height      float         `bson:"height"`    Fueltype    string        `bson:"fueltype"`    Country     float         `bson:"country"`}我的代码将被复制粘贴:var carobjFindAll []Carm := bson.M{"description": "description"}_ = RunFindAllQuery(&carobjFindAll, m, mongoSession, conn)for cur := range carobjFindAll {    fmt.Printf("\nId: %s\n", carobjFindAll[cur].Id)    fmt.Printf("\nColor: %s\n", carobjFindAll[cur].Color)}var shoesobjFindAll []Shoesm_shoes := bson.M{"description": "shoes_description"}_ = RunFindAllQuery(&shoesobjFindAll, m_shoes, mongoSession, conn)for cur_shoe := range shoesobjFindAll {    fmt.Printf("\nId: %s\n", shoesobjFindAll[cur_shoe].Id)    fmt.Printf("\nColor: %s\n", shoesobjFindAll[cur_shoe].Color)}PS:对不起我的英语
查看完整描述

1 回答

?
慕码人2483693

TA贡献1860条经验 获得超9个赞

我不是 MongoDB 专家,但这是我的看法:

由于您有很多类别,因此您不必为每种类型编写结构体,因为它既繁琐又不可靠。

相反,您应该直接使用bson.M类型,它基本上是map[string]interface{}类型的别名。


查看完整回答
反对 回复 2021-09-13
  • 1 回答
  • 0 关注
  • 207 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信