mgo 在 html 模板中将 bson.objectId 转换为字符串(十六进制)
mgo convert bson.objectId to string(hex) in html template
我知道这个问题可能与 重复。但至今仍未得到满意的答复。我真的很想提请大家注意,尽快找到解决方案。所以我求求你不要关闭这个问题,除非你有解决方案并在上一个问题中回答过:-)
我会描述这个问题以说服:
我有一个存储在 mongodb 中的数据结构,众所周知,mongodb 的 _id
是 bson.ObjectId
类型,我可以使用 sort 检索它像这样:
type Data struct {
Id bson.ObjectId `bson:"_id,omitempty"`
Content string `bson:"content"`
}
然后我通过查找特定查询条件得到了 Data
的切片,并使用 http/template
中的切片来呈现前端视图。为了操作切片中的每个项目,我想使用 Id
字段,但是当使用它时:
{{range $key, $value := .DataSlice}}
<td>{{$value.Id}}</td>
{{end}}
That 只给出了一种类似于 ObjectIdHex("550146d1b51bc1c208d1924d")
而不是 550146d1b51bc1c208d1924d
的字符串,它很好用且易于使用。
在。 op 说他找到了一种方法来解决这个问题,通过 "adding a Id_String
" 到原始数据结构。但我真的不知道该怎么做?这是否意味着在检索后分配它?由于我使用切片来存储检索到的数据,并且切片中的数据不能轻易更改。这样做比使用 jquery 在前端完成工作要复杂得多。但是这样做只会让我对我心爱的 Go 感到沮丧:-(。
那么有更好的方法吗?
bson.ObjectId type offers a Hex method that will return the hex representation you are looking for, and the template 程序包允许对您手头的值调用任意方法,因此无需将该值以字符串的形式存储在其他任何地方。
这会起作用,例如:
<td>{{$value.Id.Hex}}</td>
你也可以这样定义struct
type Data struct {
Id bson.ObjectId `json:"id" bson:"_id,"`
Content string `json:"content" bson:"content"`
}
然后你可以在模板化时使用<td>{{$value.Id}}</td>
html
我知道这个问题可能与
我会描述这个问题以说服:
我有一个存储在 mongodb 中的数据结构,众所周知,mongodb 的 _id
是 bson.ObjectId
类型,我可以使用 sort 检索它像这样:
type Data struct {
Id bson.ObjectId `bson:"_id,omitempty"`
Content string `bson:"content"`
}
然后我通过查找特定查询条件得到了 Data
的切片,并使用 http/template
中的切片来呈现前端视图。为了操作切片中的每个项目,我想使用 Id
字段,但是当使用它时:
{{range $key, $value := .DataSlice}}
<td>{{$value.Id}}</td>
{{end}}
That 只给出了一种类似于 ObjectIdHex("550146d1b51bc1c208d1924d")
而不是 550146d1b51bc1c208d1924d
的字符串,它很好用且易于使用。
在Id_String
" 到原始数据结构。但我真的不知道该怎么做?这是否意味着在检索后分配它?由于我使用切片来存储检索到的数据,并且切片中的数据不能轻易更改。这样做比使用 jquery 在前端完成工作要复杂得多。但是这样做只会让我对我心爱的 Go 感到沮丧:-(。
那么有更好的方法吗?
bson.ObjectId type offers a Hex method that will return the hex representation you are looking for, and the template 程序包允许对您手头的值调用任意方法,因此无需将该值以字符串的形式存储在其他任何地方。
这会起作用,例如:
<td>{{$value.Id.Hex}}</td>
你也可以这样定义struct
type Data struct {
Id bson.ObjectId `json:"id" bson:"_id,"`
Content string `json:"content" bson:"content"`
}
然后你可以在模板化时使用<td>{{$value.Id}}</td>
html