我希望使用mgo连接器解析MongoDB诊断命令中的特定值 . 我可以遍历bson.M {}响应,但我不确定如何在 Map 中实际提取特定的嵌套值并将它们存储为值 . 这是我到目前为止的代码:

//Connect to mongo shell
session, err := mgo.Dial("localhost")
if err != nil {
    panic(err)
}
defer session.Close()
session.SetMode(mgo.Monotonic, true)

//Get connPoolStats
connResult := bson.M{}
if err := session.DB("admin").Run("connPoolStats", &connResult); err != nil {
    panic(err)
} else {
    for key, value := range connResult {
        fmt.Println(key, value)
}

输出是:

totalRefreshing 0
hosts map[]
replicaSets map[]
numClientConnections 0
totalInUse 0
totalAvailable 0
totalCreated 0
numAScopedConnections 0
pools map[]
ok 1

我想提取numClientConnections,totalInUse,available等,并将它们存储在变量中 - 以及从嵌套映射中提取值 pools map[] 我是否需要转换为json来执行此操作或使用除bson.M之外的其他内容?