Primitive.ObjectID для строки - PullRequest
       31

Primitive.ObjectID для строки

0 голосов
/ 26 марта 2020

Я пытаюсь преобразовать тип primitive.ObjectID в строку в Go. Я использую mon go -драйвер из go .mongodb.org / mon go -driver

Я пытался использовать утверждение типа, например

mongoId := mongoDoc["_id"];
stringObjectID := mongoId.(string)

, которое принимает VSCode. Код компилируется, и когда он достигает указанной строки кода c, он выдает эту ошибку

panic: interface conversion: interface {} is primitive.ObjectID, not string

1 Ответ

0 голосов
/ 26 марта 2020

В сообщении об ошибке указывается mongoDoc["_id"] типа interface{}, который содержит значение типа primitive.ObjectID. Это не string, это отдельный тип. Вы можете набрать assert primitive.ObjectID только из значения интерфейса.

Если вы хотите string представление этого MongoDB ObjectId, вы можете использовать его ObjectID.Hex() метод для получения шестнадцатеричного значения представление байтов ObjectId:

mongoId := mongoDoc["_id"]
stringObjectID := mongoId.(primitive.ObjectID).Hex()
...