首页 > 解决方案 > 在 Golang 中用 mgo 解析 bson.M

问题描述

我希望使用 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 以外的其他东西?

标签: mongodbgomgo

解决方案


推荐阅读