数组 – 在golang中从mongodb中检索非结构化数组
发布时间:2020-12-16 09:25:54 所属栏目:大数据 来源:网络整理
导读:我在MongoDB中有以下文档 { "_id" : ObjectId("57e4f8f454b9a4bb13a031d8"),"ip" : "192.168.0.1","browser" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.307
我在MongoDB中有以下文档
{ "_id" : ObjectId("57e4f8f454b9a4bb13a031d8"),"ip" : "192.168.0.1","browser" : "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)","datetime" : ISODate("2016-09-23T09:42:12.821Z"),"userhash" : "BF12742F1B3A486F75E80843230168CE","groups" : [ "group1","group2" ] } 我试图让这些组成为逗号分隔的字符串,如group1,group2,但是尽管我已经尝试过,但我仍然会遇到一堵砖墙. 我得到的最近的是如下 type Record struct { ID bson.ObjectId `bson:"_id"` IP string `bson:"ip"` Browser string `bson:"browser"` DateTime string `bson:"datetime"` Groups bson.M `bson:"groups,inline"` } result = []Record{} _ = c.Find(bson.M{}).All(&result) 似乎将组放入地图但我无法将组变成字符串.我是Go的新手,所以我还在学习不同的数据类型以及用于访问它们的语法. 谢谢 解决方法
groups是MongoDB中的一个数组,因此在Go中使用切片类型:
type Record struct { ID bson.ObjectId `bson:"_id"` IP string `bson:"ip"` Browser string `bson:"browser"` DateTime string `bson:"datetime"` Groups []string `bson:"groups"` } 一旦你得到这样的记录: err := c.Find(nil).All(&result) // Do check error 您可以使用 s := []string{"group1","group2"} all := strings.Join(s,",") fmt.Println(all) 上面的代码打印(在Go Playground上试试): group1,group2 例如,打印组: for _,r := range result { fmt.Println(strings.Join(r.Groups,")) } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |