mongodb mgo的存储多维对象的问题?

发布于 2021-11-21 13:48:23 字数 3845 浏览 697 评论 5

想要保存如下类似的数据

{"_ibj_id":"1","url_id":'1',"url":{"0":"http://0.com","1":"http:://1.com"}}
但是mongodb最终保存的数据

看下面的代码

/**
 * 采集120ask.com
 */
package main
 
import (
    "fmt"
    "github.com/PuerkitoBio/goquery"
    //"github.com/axgle/mahonia"
    "labix.org/v2/mgo"
    "strconv"
)
 
//数据库
type db_list struct {
    Url_id int
    Url    map[int]string
}
 
//采集第一步,进行采集网址列表
//http://www.120ask.com/list/all/1628644/
func list(table *mgo.Collection) {
    var doc *goquery.Document
    var e error
    for i := 1628644; i > 1628643; i-- {
        //进行采集列表,保存到mongodb数据库.
        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))
        //保存到mongodb数据库
        table.Insert(save_list)
    }
}
 
func main() {
    //连接mongodb数据库
    var db *mgo.Database
    session, err := mgo.Dial("127.0.0.1")
    if err != nil {
        panic(err)
    }
    defer session.Close()
    db = session.DB("120ask")
    //fmt.Printf("%Tn", db.C("list"))
    /*
        var doc *goquery.Document
        var e error
        enc := mahonia.NewDecoder("gbk")
        if doc, e = goquery.NewDocument("http://www.ali213.net"); e != nil {
            panic(e.Error())
        }
        str, _ := doc.Html()
        fmt.Printf(enc.ConvertString(str))
    */
    list(db.C("list"))
 
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

平定天下 2021-11-27 03:39:16

结构成员首字母大写,试试看。

孤独患者 2021-11-27 02:37:59

你指的多维数组是?

field : [[123, 234], [345, 456], [567,678]]

or

field : [{a:123, b:234}, {a:345, b:456}, {a:567,b:678}]

它存储的标准的JSON,也就是JSON能表达的,它都能存储。

拍不死你 2021-11-27 01:57:35

golang  目测好亲切。。。多维数组没试过 唉。。。

拍不死你 2021-11-27 00:34:03

你这是啥语言我没看懂。

但是你描述的文档是可以保存的。

但是MongoDB没有自增的键,url中0,1需要你自己用程序控制。

坐在坟头思考人生 2021-11-21 17:14:19

你这是啥语言我没看懂。

但是你描述的文档是可以保存的。

但是MongoDB没有自增的键,url中0,1需要你自己用程序控制。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文