mongodb - 如何插入多维数组

标签 mongodb go mgo

想要保存以下格式的数据

{"_ibj_id":"1","url_id":'1',"url":{"0":"http://0.com","1":"http:://1.com"}}

看看我的代码,

type db_list struct {
    Url_id int
    Url    map[int]string
}
func list(table *mgo.Collection) {

    var doc *goquery.Document

    var e error

    for i := 1628644; i > 1628643; i-- {

        if doc, e = goquery.NewDocument("http://www.120ask.com/list/all/" + strconv.Itoa(i)); e != nil {

            panic(e.Error())

        }

        var save_list db_list

        save_list.Url_id = i

        save_list.Url = make(map[int]string)

        //fmt.Println("%s", doc.Text())

        doc.Find(".q-quename").Each(func(n int, s *goquery.Selection) {

            href, isTrue := s.Attr("href")

            if isTrue {

                save_list.Url[n] = href

                fmt.Println("%D : %s", n, save_list.Url[n])

            }

        })

        fmt.Println("%D", len(save_list.Url))

        //save database

        table.Insert(save_list)

    }

}

数据库最终会保存 请查看附件中的图片,是保存数据的格式,保存属性1的URL值enter image description here

最佳答案

您可能在寻找 JSON Unmarshalencoding/json 中发挥作用

{"_ibj_id":"1","url_id":'1',"url":{"0":"http://0.com","1":"http:://1.com"}} 在技术上是无效的 JSON,因为 url_id 值周围有单引号('1' 应该是 "1") 但除此之外,它应该很好地映射到以下结构:

{
id string
url_id string
urls []string
}

但是您可能需要对这些类型进行试验。根据 Unmarshal 函数的文档,它将为每种 JSON 类型使用以下 Go 类型:

bool, for JSON booleans
float64, for JSON numbers
string, for JSON strings
[]interface{}, for JSON arrays
map[string]interface{}, for JSON objects
nil for JSON null

我强烈推荐阅读 Andrew Gerrands Blog Post "JSON and Go" .

关于mongodb - 如何插入多维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17026342/

相关文章:

mongodb - Mgo 拉取更新不起作用

php - 流明与 mongodb :getting error : Call to a member function prepare() on null

mongodb - 在谷歌云平台上部署mongodb?

go - 在 Go 中安全地获取 slice 的一部分

go - 将字节数组转换为字符串数组

http - 如何在 GO 中获取 LocalAddress?

mongodb - MGO - 从 Mongo 返回的空结果有结果

mongodb - 从 Go 连接到远程 Linux MongoDb(无身份验证)

node.js - 如果不存在,MongoDB 将默认值合并到每个文档

c# - 'MongoDB.Driver.MongoClient' 不包含 'GetServer' 的定义 ...可以找到类型为 'MongoDB.Driver.MongoClient' 的第一个参数