我正在开发一个基于MongoDB数据结构的项目。存储在数据库中的对象如下所示:
{
"_id" : ObjectId("567a877df1c7720bea7c2f51"),
"username" : "dog",
"type" : "regular",
"data" : {
"full" : {
"xx" : "xx",
"xx" : "xx",
"yy" : {
"xx" : "test"
},
"yy" : {
"xx" : {
}
}
}
}
我们使用Golang进行的结构看起来像这样:
type User struct {
Id bson.ObjectId `bson:"_id,omitempty"`
username string
Type string
data struct {
full struct {
xx string `json:"xx"`
xx string `json:"xx"`
xxx struct{} `json:"xx"`
yy struct {
}
}
}
}
问题是,第一个属性填充数据没有任何问题,但对象内的对象不起作用。
我们提取数据的代码是我们在MGO文档中看到的常规代码。
err = collection.Find(bson.M{"username": username}).One(&user)
有没有以这种方式获取数据的具体方法?
答案 0 :(得分:2)
我从手写这个jus。但是你必须记住大写名称字段和结构内的属性json
形式。
type User struct {
Id bson.ObjectId `bson:"_id,omitempty"`
Username string
Type string
Data struct { // Data nor data
Full struct { // Full nor full
Xx string `json:"xx"` // Xx nor xx
Xx string `json:"xx"`
Xxx struct{} `json:"xx"`
Yy struct { // Yy nor yy
}`json:"yy"`
} `json:"full"`
} `json:"data"`
}
修改强>:
另一个作品例子
go中的结构
type Event struct{
EvL []struct {
BaV int `json:"basicV"`
ChI int `json:"chann"`
DaU int `json:"dataU"`
} `json:"eventL"`
ST int `json:"send.dat_ts"`
}
下面如何查看上面的结构写入DB
{ "_id" :
ObjectId("560d422e65f47eef8a118cbd"),
"evl" :
[
{
"bav" : 255,
"chi" : 14,
"dau" : 0,
],
"st" : 5
}