英文:
retrieve a nested document with mgo
问题
我需要使用mgo从MongoDB中检索一个嵌套文档。以下是我的数据库中的文档:
{
"_id" : "packing_type_0000",
"name" : "packing",
"category" : "logistics",
"en" : {
"translatedName" : "Packing and Order Prep"
}
}
这是我的Golang结构体:
type jobTypeWording struct {
TranslatedName string `json:"translatedName" bson:"translatedName"`
}
type jobType struct {
ID string `json:"_id" bson:"_id"`
Name string `json:"name" bson:"name"`
Category string `json:"category" bson:"category"`
En jobTypeWording `json:"en" bson:"en"`
}
这是我的代码:
result := jobType{}
sessionCopy := session.Copy()
defer sessionCopy.Close()
c := sessionCopy.DB(os.Getenv("DB_DATABASE")).C("jobTypes")
err := c.Find(bson.M{"_id": Id}).One(&result)
fmt.Println(result.En.TranslatedName)
我的程序输出:
Packing and Order Prep
如何检索en.translatedName
?在同一个程序中,我以相同的方式获取其他嵌套的bson,并且可以正常工作。我不明白我的错误在哪里。
英文:
I need to retrieve a nested document in mongoDB with mgo.
Here is my document in db:
{
"_id" : "packing_type_0000",
"name" : "packing",
"category" : "logistics",
"en" : {
"translatedName" : "Packing and Order Prep",
},
}
This is my golang structure:
type jobTypeWording struct {
translatedName string `json:"translatedName" bson:"translatedName"`
}
type jobType struct {
ID string `json:"_id" bson:"_id"`
Name string `json:"name" bson:"name"`
Category string `json:"category" bson:"category"`
en jobTypeWording `json:"en" bson:"en"`
}
And my code:
result := jobType{}
sessionCopy := session.Copy()
defer sessionCopy.Close()
c := sessionCopy.DB(os.Getenv("DB_DATABASE")).C("jobTypes")
err := c.Find(bson.M{"_id": Id}).One(&result)
fmt.Println(result.en)
My program program output:
{ }
How do I retrieve en.translatedName
?
In the same program I get other nested bson from mongo and it's working with same way. I don't understand my mistake.
答案1
得分: 1
我找到了解决方案,原因是我的字段 en
以小写字母开头。如果我将 en
改为 En
,将 translatedName
改为 TranslatedName
,它就可以工作了。更多详细信息请参考答案。
英文:
I found solution, it's because my field en
began by a lower case. If i change en
by En
and translatedName
by TranslatedName
, it's work.
Here a more details answer
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论