Mongodb 如何插入多维数组
要保存以下格式的数据吗Mongodb 如何插入多维数组,mongodb,go,mgo,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 f
{"_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值
{u ibj_id:“1”,“url_id:'1',“url:{0:”http://0.com“,“1”:“http://1.com”}
在技术上是无效的JSON,因为url\u 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
我强烈推荐阅读。我不清楚你到底想做什么。不过,我注意到的一点是,在您想要的格式中,Url的键是字符串值,而在Go中它们是整数。您可以尝试将
Url
的类型更改为map[string]string
,看看这是否解决了您的问题。我希望此字段的Url可以存储数组