mongodb - 对象中的对象 对象中的对象 Golang

标签 mongodb go

我试图在 mongoDB 中创建嵌套对象,但不幸的是,我试图实现的格式如下

 "Courses":{
    "Date":{
      "CourseName"  :{
                "hole 1"{

                }
                "hole 2"{

                }
                ...so on until 18 
               }//coursename
             }//date 
          }//courses

我尝试并成功地通过执行以下操作在类(class)中获取日期对象:

u := req.FormValue("username")
co := req.FormValue("course")
d := req.FormValue("date")

ng := nGame{Username: u, Course: co, Dates: d}
cn := courseName{CName: co}
query := bson.M{"username": u}
update := bson.M{"$push": bson.M{"Course": bson.M{ng.Dates: cn}}}  
err = c.Update(query, update)

日期对象里面有类(class)名称我想做的是让类(class)名称成为另一个对象,然后我可以插入洞对象。

我使用的结构如下:

type (
nGame struct {
    Username string
    Course   string
    Location string
    Dates    string
}
)
type (
courseName struct {
    CName string
}
)

最佳答案

据我了解,您描述的结构可以在 Go 中表示如下:

type Hole struct {
    // Whatever you want here
}

type Course struct {
    Hole1 Hole `json:"hole 1"`
    Hole2 Hole `json:"hole 2"`
    // ...
    Hole18 Hole `json:"hole 18"`
}

type Courses struct {
    //  Date       CourseName
    map[string]map[string]Course
}

不过,我建议您为孔使用 18 元素数组,但这取决于您:

type Course struct {
    Holes [18]Hole
}

然后您可以将其中一棵树实例化为(使用 [18]Hole 数组;如果您使用不同的实现,则相应地进行调整):

courses := Courses{
    map[string]map[string]Course{
        "2017-01-01": map[string]Course{
            "Bob's Course": Course{
                [18]Hole{
                    Hole{
                      // Hole 1
                    },
                    Hole{
                      // Hole 2
                    },
                    // ..
                },
            },
        },
    },
}

关于mongodb - 对象中的对象 对象中的对象 Golang,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42513223/

相关文章:

arrays - 如何查找其特定字段不是数组类型的文档?

go - 无法理解函数的两个返回值

go - 在 Go 中创建一个并行字计数器

memory - Go:重用映射键时会占用大量内存

node.js - 亚马逊云,存储 Assets

node.js - Mongoose – 将对象相互链接而不重复

go - 编码空 map[string]interface{} 结果为 "null"而不是 nil

go - 如何创建字节矩阵Golang

Mongodb - 从嵌套项目中获得最高结果

MongoDB 事务 : WriteConflict Error