Как вставить интерфейсный тип {} в mongodb с помощью bulk.Insert () - PullRequest
1 голос
/ 10 апреля 2019

Я не могу вставить большой массив в мою коллекцию;У меня проблема с типом interface{}.

Вот код:

collections = getSession().DB("go").C("comments")

func BenchmarkBulkInsert(data interface{}) {
    bulk := collections.Bulk()

    bulk.Insert(data...)
    _, bulkErr := bulk.Run()
    if bulkErr != nil {
        panic(bulkErr)
    }

    fmt.Printf("\n - %d comments inserted!", reflect.ValueOf(data).Len())
}

Я не могу собрать приложение.Сообщение об ошибке таково:

не может использовать данные (интерфейс типа {}) в качестве типа [] interface {} в аргументе для bulk.Insert: необходимо утверждение типа

Я использую пакет "gopkg.in/mgo.v2" для подключения к базе данных Mongo, и data - это массив, когда я печатаю его на консоль.

1 Ответ

3 голосов
/ 10 апреля 2019

Вы должны использовать variadic func Таким образом, вы должны изменить входной параметр с этого:

func BenchmarkBulkInsert(data interface{}) 

на это:

func BenchmarkBulkInsert(data ...interface{}) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...