我正在寻找使用mgo连接器从MongoDB诊断命令中解析特定值。我可以遍历bson.M {}响应,但是不确定如何在映射中实际提取特定的嵌套值并将其存储为值。这是我到目前为止的代码:
//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以外的其他东西?