Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 狂欢+;mgo golang-如何定义结构类型来处理来自db的嵌套对象?_Mongodb_Go_Struct_Mgo_Revel - Fatal编程技术网

Mongodb 狂欢+;mgo golang-如何定义结构类型来处理来自db的嵌套对象?

Mongodb 狂欢+;mgo golang-如何定义结构类型来处理来自db的嵌套对象?,mongodb,go,struct,mgo,revel,Mongodb,Go,Struct,Mgo,Revel,我的mongo收藏中有这种文件- { "_id" : "3wPEpWwECbrTrnSbh", "brandId" : 45, "title" : "brandtitle", "logoImg" : "brandtitle.png", "category" : { "category 1" : [ { "cat" : "A1 Plus Champ" },

我的mongo收藏中有这种文件-

{
    "_id" : "3wPEpWwECbrTrnSbh",
    "brandId" : 45,
    "title" : "brandtitle",
    "logoImg" : "brandtitle.png",
    "category" : {
        "category 1" : [ 
            {
                "cat" : "A1 Plus Champ"
            }, 
            {
                "cat" : "A108"
            }, 
            {
                "cat" : "A6"
            },            
        ],
        "category 2" : [ 
            {
                "cat" : "something"
            }, 
            {
                "cat" : "soemthing else"
            }, 
            {
                "cat" : "something else"
            },            
        ],
    },
    "isActive" : true,
    "isOnboarded" : false,
    "serviceNumber" : 18605001492.0
}
所以有几个品牌。 我可以得到所有的东西,除了这个类别

我的型号代码数据类型为-

type Brand struct {
    Id string           `bson:"_id" json:"_id"`
    Brandid int         `bson:"brandId" json:"brandId"`
    Title string        `json:"title"`
    Logoimg string      `bson:"logoImg" json:"logoImg"`
    Category []string   `bson:"category" json:"category"`
    Isactive bool       `bson:"isActive" json:"isActive"`
    Isonboarded bool    `bson:"isOnboarded" json:"isOnboarded"`
    Servicenumber int   `bson:"serviceNumber" json:"serviceNumber"`
}
我现在把Category看作一个字符串数组,但这当然是错误的

输出如下所示-

  {
    "_id": "3wPEpWwECbrTrnSbh",
    "brandId": 45,
    "title": "brandtitle",
    "logoImg": "brandtitle.png",
    "category": null,
    "isActive": true,
    "isOnboarded": false,
    "serviceNumber": 18605001492
  }

我应该如何构造这个结构来显示我从数据库中获取的数据类型?

你能解释一下[string]与just string的含义吗?@GauravOjha抱歉,但我不确定我是否能在没有任何其他编程语言背景的情况下用纯Go来解释这一点。简而言之,您试图用更复杂的类型填充
[]字符串
类型字段,这就是为什么您得到了
nil
。要在Go中使用嵌套JSON(而不仅仅是),您应该了解更多有关的信息。再次感谢@roman-r我正在学习Go,非常感谢您的帮助!
type Brand struct {
    Id string           `bson:"_id" json:"_id"`
    Brandid int         `bson:"brandId" json:"brandId"`
    Title string        `json:"title"`
    Logoimg string      `bson:"logoImg" json:"logoImg"`
    Category      map[string][]map[string]string   `bson:"category" json:"category"`
    Isactive bool       `bson:"isActive" json:"isActive"`
    Isonboarded bool    `bson:"isOnboarded" json:"isOnboarded"`
    Servicenumber int   `bson:"serviceNumber" json:"serviceNumber"`
}