Преобразование интерфейса Mongodb-go-driver: интерфейс {} является primitive.ObjectID, а не primitive.ObjectID (типы из разных пакетов) - PullRequest
0 голосов
/ 21 апреля 2019

Я могу отобразить результат. InsertedID без проблем, однако, я продолжаю получать вышеуказанную ошибку, когда пытаюсь получить доступ к значению, чтобы использовать его в других местах. Я хочу получить значение, прежде чем покинуть метод, который вставляет новый объект. Сообщение об ошибке не имеет никакого смысла.

Я получаю эту ошибку с res.InsertedID. (Primitive.ObjectID). Как правильно?

Как получить конкретное значение предпочтительно в виде шестнадцатеричной строки? Даже если бы я мог получить значение как конкретный ObjectID, а не как интерфейс, я был бы счастлив.

1 Ответ

2 голосов
/ 21 апреля 2019

В приложении есть два пакета с именем primitive, которые содержат тип с именем ObjectID. Конкретное значение в утверждении типа относится к одному из этих пакетов. Утвержденный тип из другого пакета. Утверждение типа паникует, потому что типы не равны.

Исправьте, изменив приложение для использования единого пути импорта для пакета primitive (и всего драйвера).

Канонический путь импорта пакета был изменен с github.com/mongodb/mongo-go-driver/bson/primitive на go.mongodb.org/mongo-driver/bson/primitive в феврале 2019 года. Вероятно, приложение использует оба этих пути импорта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...