Ошибка "composite literal uses unkeyed fields" означает, что вы пытаетесь инициализировать структуру в Go без указания ключей для полей. Это ограничение полезно для обеспечения читаемости и ясности кода.
В конкретном случае с пакетом "go.mongodb.org/mongo-driver/bson/primitive", который используется для работы с типами данных BSON в MongoDB, эта ошибка означает, что вы неправильно пытаетесь создать экземпляр конкретного типа данных.
Например, допустим, мы хотим создать новый объект типа ObjectID из пакета "go.mongodb.org/mongo-driver/bson/primitive". Исходный код, который вызвал бы эту ошибку, может выглядеть следующим образом:
id := primitive.ObjectID{"5fb5e29b85c9a056e2addb24"}
Ошибка возникает потому, что нам нужно указывать ключи для полей при создании объекта типа ObjectID. Ключом в этом случае является поле "Hex", которое представляет шестнадцатеричное представление идентификатора объекта:
id := primitive.ObjectID{Hex: "5fb5e29b85c9a056e2addb24"}
Теперь объект типа ObjectID будет правильно инициализирован, и ошибка "composite literal uses unkeyed fields" не будет возникать.
То есть, чтобы решить эту проблему, вам нужно просто указать ключи для полей в соответствующем порядке инициализации структуры. Это обеспечит правильное создание объекта типа данных, используя библиотеку "go.mongodb.org/mongo-driver/bson/primitive".