У меня есть интерфейс map [string] {}, сгенерированный по запросу mongo, использующему новый драйвер mongo-go
Я хочу обработать определенные значения на карте и заменить символы £ взначения, принадлежащие агрегированному ключу
Вот карта:
result2 = map[aggregate:[map[£match:map[Source:Cities]] map[£sort:map[Order:1]]] collection:aggregate_stats db:stats]
Цикл по карте:
for key, value := range result2 {
fmt.Println("key from result2:", key, " || ", "value from result 2:", value)
if key == "aggregate" {
fmt.Println("FOUND AGGREGATE || ", "value:", value, " || type: ", reflect.TypeOf(value))
}
if valueMSI, ok := value.([]interface{}); ok {
fmt.Println("Working", valueMSI)
fmt.Println(reflect.TypeOf(valueMSI))
}
}
Теперь в операторе if выполняется проверка дляключ агрегации, вывод первого оператора печати дает тип как:
primitive.A
Но это выглядит как [] интерфейс {} карт при печати?[см. результат2]
Учитывая это, почему не вычисляется второй оператор if?
Означает ли это, что primitive.A! = массив интерфейсов?
В документации https://godoc.org/go.mongodb.org/mongo-driver/bson/primitive тип A определяется как «A представляет массив BSON. Этот тип может использоваться для представления массива BSON в краткой и удобочитаемой форме. Обычно его следует использоватьпри сериализации в BSON. Для десериализации следует использовать типы RawArray или Array. "
Как я могу это сделать?Я хочу получить доступ к значениям для совокупного ключа?