我正在與mgo
一起使用MongoDB和Go。我有以下代碼:如何從地圖中檢索價值 - 去朗?
func Find(collectionName, dbName string, query interface{}) (result []interface{}, err error) {
collection := session.DB(dbName).C(collectionName)
err = collection.Find(query).All(&result)
return result, err
}
func GetTransactionID() (id interface{}, err error) {
query := bson.M{}
transId, err := Find("transactionId", dbName, query)
for key, value := range transId {
fmt.Println("k:", key, "v:", value)
}
}
Output:
K:0ν:地圖[_id:ObjectIdHex( 「536887c199b6d0510964c35b」)TRANSID:A000000000]
我需要從地圖得到的_id
和transId
值從Find
切片中返回的值。我怎樣才能做到這一點?
通過Go tour你的方式http://tour.golang.org/#1首先。提示:'transId'是一個slice(有點數組),因此映射爲元素0,所以你現在可能想要'm:= transId [0]'現在'm'是映射,元素可以像'm [ 「_id」]'和'm [「transID」]'。 – Volker
@Volker謝謝我曾嘗試過。錯誤是無效操作:m [「_ id」](接口類型的索引{}) – karthick
您將不得不顯示整個代碼。猜測地圖的類型是不可能的。如果你無法弄清楚你的地圖是什麼類型的話,可以嘗試使用'%+ v'和/或'%#v'打印這些東西。 – Volker