#mongodb #go
#mongodb #Вперед
Вопрос:
Я не могу вставить большой массив в свою коллекцию; У меня проблема с 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 {}) в качестве типа []interface {} в аргументе bulk .Вставить: требуется утверждение типа
Я использую «gopkg.in/mgo.v2 » пакет для подключения к базе данных Mongo и data
представляет собой массив, когда я печатаю его на консоли.
Комментарии:
1. Вероятно, вы захотите использовать
data ...interface{}
вместоdata interface{}
2. 🤔 можете ли вы мне объяснить?
3. измените сигнатуру функции
func BenchmarkBulkInsert(data ...interface{})
Ответ №1:
Вы должны использовать variadic func, поэтому вам нужно изменить входной параметр из этого :
func BenchmarkBulkInsert(data interface{})
для этого :
func BenchmarkBulkInsert(data ...interface{})
Комментарии:
1. привет, можешь сказать мне, правильно ли написан метод, который я использую для вставки массива?
2. Да, все в порядке.