我知道标题说接口数组,但这就是打印数据的方式。
我在 mongodb 中有一个名为“设备”的字段,它是对象类型。该对象包含一堆随机键值对。键只是随机生成的整数,值是字符串。
所以我写了一些从数据库中检索数据的代码,在我检索到数据之后,我想从这些对象中获取所有键并将它们存储在一个数组中,我似乎不知道该怎么做那。
首先,我假设我的问题在于获取数据的方式,因为我将其存储到 interface{} 而不是数组中。数据像数组一样打印出来,但是当我更改结构以检索数组时,它返回为空,所以我放弃了这个想法。
功能
type Data struct {
Devices interface{} `json:"devices" bson:"devices"`
}
client := db.ConnectClient()
col := client.Database("Users").Collection("User")
var deviceIds Data
_ = col.FindOne(context.TODO(), bson.D{}).Decode(&deviceIds)
log.Print(deviceIds.Devices)
输出
2020/10/29 21:28:07 [{123456789 Plant} {456753121 Money Bringer} {798745321 Hello}]
我也尝试过将该结构更改为
type Data struct {
Devices map[int]interface{} `json:"devices" bson:"devices"`
}
这给出了一个输出
2020/10/29 21:35:10 map[123456789:Plant 456753121:Money Bringer 798745321:Hello]
但我又不知道如何从中提取密钥
一只名叫tom的猫
相关分类