mongodb - 如何获取原始 M 中的值
问题描述
showInfoCursor, err := collection.Aggregate(context.TODO(), mongo.Pipeline{unwindStage, groupStage})
if err != nil {
panic(err)
}
var showsWithInfo []bson.M
if err = showInfoCursor.All(context.TODO(), &showsWithInfo); err != nil {
panic(err)
}
我正在迭代 showWithInfo 数组。每个bson.M包含特定键的原始 M类型值。我试图将其转换为结构,但没有成功。
map[operatorId:1 channel: XYZ]
这就是我打印原始 M的值后得到的结果。我需要从中获得这两个值。(运营商 ID,渠道)
解决方案
bson.M
是 的类型别名primitive.M
:
type M = primitive.M
并且primitive.M
是一个“简单”的地图:
type M map[string]interface{}
因此,您可以像使用任何地图一样索引该值:
m := primitive.M{
"operatorId": 1,
"channel": "XYZ",
}
fmt.Println(m)
fmt.Println("Operator ID:", m["operatorId"])
fmt.Println("Channel:", m["channel"])
这个输出(在Go Playground上试试):
map[channel:XYZ operatorId:1]
Operator ID: 1
Channel: XYZ
推荐阅读
- c - 不包括两次相同数字的数字总和
- javascript - 向分页 url.action 添加属性?
- python - 如何使用条件合并数据框?
- matlab - MATLAB 绘制图像,8 种颜色的索引图像,第一个图上的 8 个颜色框和索引,第二个图绘制图像的 0-7 个索引作为图像
- three.js - 如何仅使用脚本更改three.js / editor中的相机?
- java - 将字节流解析成大对象
- android - 检测设备是用针锁或面部锁的指纹锁保护的吗?
- php - PHP分组多维数组独立处理每组数组
- c++ - 我可以在普通构造函数之前使用全局对象吗?
- javascript - 为什么 node.js 承诺即使放在 then() 块中也不会解决?