我有一个GOLANG结构如下:
type OrgWhoAmI struct { FriendlyName string `json:"friendlyName"` RedemptionCode string `json:"redemptionCode"` StartUrls []StartUrl `json:"startUrls"` Status string `json:"status"` Children []OrgChildren `json:"childrenReemptionCodes"` } type StartUrl struct { DisplayName string `json:"displayName"` URL string `json:"url"` } type OrgChildren struct { FriendlyName string `json:"childFriendlyName"` RedemptionCode string `json:"childRedemptionCode"` }
我已经创建并成功将记录插入到MongoDB集合中(因为我可以通过CLI mongo程序查询Mongo来查看结果) - 但是当我用MGO查询如下时,我什么也得不到:
func main() { session, sessionErr := mgo.Dial("localhost") defer session.Close() // Query All collection := session.DB("OrgData").C("orgWhoAmI") var results []OrgWhoAmI err = collection.Find(bson.M{}).All(&results) if err != nil { panic(err) } for _, res := range results { fmt.Printf("Result: %s|%s\n", res.FriendlyName, res.RedemptionCode) } }
印刷的结果是:
结果:| 结果:| 结果:| 结果:|
如果我要求记录的计数,我得到正确的数字,但所有字段的所有值都是空白的.不知道我在这里缺少什么.
如果您没有在go中创建它们,则可能没有正确地为您键入密钥名称.bson的默认值是小写键,因此如果需要其他内容,则需要指定它.另外请注意,你有一个错字OrgWhoAmI
的json:"childrenReemptionCodes"
(应该是救赎,我猜).如果希望它们不同,您可以单独指定bson和json.
type OrgWhoAmI struct { FriendlyName string `bson:"friendlyName" json:"friendlyName"` RedemptionCode string `bson:"redemptionCode" json:"redemptionCode"` StartUrls []StartUrl `bson:"startUrls" json:"startUrls"` Status string `bson:"status" json:"status"` Children []OrgChildren `bson:"childrenRedemptionCodes" json:"childrenRedemptionCodes"` } type StartUrl struct { DisplayName string `bson:"displayName" json:"displayName"` URL string `bson:"url" json:"url"` } type OrgChildren struct { FriendlyName string `bson:"childFriendlyName" json:"childFriendlyName"` RedemptionCode string `bson:"childRedemptionCode" json:"childRedemptionCode"` }