Как преобразовать строку в BSON - PullRequest
0 голосов
/ 06 ноября 2019

Я хочу преобразовать строку в BSON Obj для выполнения агрегатной операции mongodb. Все запросы будут где-то храниться, и теперь мы должны преобразовать строку в операцию BSON и показать результат.

Допустим,

var str = `[{"$match":{"tenantId":"TenantOne"}},{"$group":{"_id":{"referralType":"$referralType"},"value":{"$sum":1}}}]`

Мне нужно преобразовать в

var bsonobj = bson.A{
  bson.D{{
    Key: "$match", Value : bson.D{{
      Key : "tenantId" : Value: "TenantOne"
    }}
  }},
  bson.D{{
    Key: "$group", Value : bson.D{{
      Key : "_id" : Value: bson.D{{
        Key : "referralType" : Value: "$referralType"
      }},
      Key : "value" : Value: bson.D{{
        Key : "$sum" : Value: 1
      }}

    }}
  }}
}

Я пробовал Golang MongoDB-Driver - Bson Unmarshal ! Я не могу правильно его использовать.

1 Ответ

0 голосов
/ 06 ноября 2019

попробуйте это:

    var str = `[{"$match":{"tenantId":"TenantOne"}},{"$group":{"_id":{"referralType":"$referralType"},"value":{"$sum":1}}}]`
fmt.Println(str)
var bdoc interface{}
err := bson.UnmarshalExtJSON([]byte(str),true,&bdoc)
fmt.Println(bdoc)
fmt.Println(err)
...