
Nibbler
07.05.2018
08:41:13
да, но у меня разный набор данных передается.

Denis
07.05.2018
08:41:14
а, ну да, там же docs ...interface{})
если много параметров надо не слайсом а через запятую

Nibbler
07.05.2018
08:41:30
одна
type Item struct {
Id bson.ObjectId json:"id" bson:"_id,omitempty"
Status bool json:"status" bson:"status"
Scheme string bson:"scheme" json:"scheme"
Name string bson:"name" json:"name"
}

Google

Nibbler
07.05.2018
08:41:33
вторая выше.

tsov
07.05.2018
08:41:47
попробуй globalsign/mgo, там в bson есть проверки

Nibbler
07.05.2018
08:42:17

Denis
07.05.2018
08:42:34
ну да, тогда он не сериализуется в bson, да
так подожди ты передаешь слайс в Insert? в слайсе хранятся несколько структур, ты их все хочешь по одной сохранить?

Nibbler
07.05.2018
08:43:16
пачкой
это один документ

Denis
07.05.2018
08:43:38
так почему это один документ а ты передаешь массив?

Nibbler
07.05.2018
08:44:02
я всю структуру кидаю ему.
пачкой

tsov
07.05.2018
08:44:21
структура не бывает пачеой

Nibbler
07.05.2018
08:44:29
сразу. или в монге нельзя хранить «data» : [{object}, {object}]

tsov
07.05.2018
08:44:35
либо пачка либо структура

Google

Denis
07.05.2018
08:44:38
я кажется понял, то есть у тебя
struct First {
field Second
}
struct Second{
somefield
}
ты пытаешься сохранить first, но передаешь слайсом и first и second чтоли?

Nibbler
07.05.2018
08:45:01

Ivahaev
07.05.2018
08:45:09

Denis
07.05.2018
08:45:12
ну second не надо передавать, только first

Nibbler
07.05.2018
08:45:33
ага весь json что decode(&first) - передаю

Denis
07.05.2018
08:46:09
так где тут слайс-то получается я не совсем понимаю
ты должен передать просто First{}

Nibbler
07.05.2018
08:46:51

Denis
07.05.2018
08:47:22
нет,col.Insert (docs ...interface{}) он принимает что угодно, что можно сериализовать в bson

tsov
07.05.2018
08:47:24
эта зайдет нормально

Denis
07.05.2018
08:47:34
мпау, bson.M{}, структуру
вопрос в том чего у тебя слайс-то передается откуда

Nibbler
07.05.2018
08:48:59
decoder.Decode(&item) - json
err = mgo.Insert(&item.Data) - отправляем в мой пакет БД
collection.Insert(item) - сохраняем в монге
BSON field 'insert.documents.0' is the wrong type 'array', expected type 'object'
получаем

Denis
07.05.2018
08:49:14
item это какой тип?

Nibbler
07.05.2018
08:49:32
Insert(object ...interface{})

tsov
07.05.2018
08:49:37
смотри сюда: mgo/bson/encode.go, функция func (e *encoder) addDoc(v reflect.Value) - дебажь ее со своими данными

Denis
07.05.2018
08:50:06

Google

Denis
07.05.2018
08:50:24

tsov
07.05.2018
08:50:26
да у него там косяк в данных
надо дебагом идти

Daniel
07.05.2018
08:50:44
Человек, по-моему, базовых вещей не знает
Дебаг обычно не нужен

Denis
07.05.2018
08:51:09
decoder.Decode(&item) вот здесь ты в item из jsonа или чего-то еще десеарилизуешься
а item это что такое?

Nibbler
07.05.2018
08:51:26

Daniel
07.05.2018
08:51:34
А нужен здравый смысл

Denis
07.05.2018
08:51:47

Nibbler
07.05.2018
08:51:56
item := &object

Nibbler
07.05.2018
08:51:58
указатель

Denis
07.05.2018
08:52:05
хорошо, а object это что?

Nibbler
07.05.2018
08:52:47
object ...interface{}

Denis
07.05.2018
08:53:02
ммм ты меня окончательно запутал

tsov
07.05.2018
08:53:03
ну вот он, слайс

Denis
07.05.2018
08:53:12
ну да, я и говорю, но откуда и зачем

Nibbler
07.05.2018
08:53:24
ага.

tsov
07.05.2018
08:53:29
передает как параметр

Google

Denis
07.05.2018
08:53:46
а все я понял что ты не понимаешь, @Daring_junior

tsov
07.05.2018
08:53:59
дурная голова mgo покоя не дает :)))

Admin
ERROR: S client not available

Denis
07.05.2018
08:54:02
смотри в mgo.Insert(docs ..interface{}) это для того

Nibbler
07.05.2018
08:54:40

Denis
07.05.2018
08:55:05
для того чтобы можно было передать несколько документов и их пачкой сохранить. например mgo.Insert(Item{}, Item{}, Item{})
тебе не нужно нигде указывать ...interface{}. укажи item свой тип

tsov
07.05.2018
08:55:57
надо for _, item:=range object

Nibbler
07.05.2018
08:56:00

Igor
07.05.2018
08:56:07
А подскажите, пожалуйста - какой сейчас code style наиболее распространенный?

Denis
07.05.2018
08:56:21

Igor
07.05.2018
08:56:41

tsov
07.05.2018
08:56:56

Nibbler
07.05.2018
08:57:07

Denis
07.05.2018
08:57:08

Ivahaev
07.05.2018
08:57:11
https://github.com/golang/go/wiki/CodeReviewComments
Два

Denis
07.05.2018
08:57:36
Insert(object...)
не не не, ты не понял, у него документ один, но он пытается его десеарилизовать сначала из JSON и указывает тип переменной ...interface{}

tsov
07.05.2018
08:57:59
ой е, так то да, жопа будет

Nibbler
07.05.2018
08:58:05

Google

Nibbler
07.05.2018
08:58:08
да именно так

tsov
07.05.2018
08:58:38
а надо просто var object interface{}

Denis
07.05.2018
08:58:38
в общем укажи тип переменной для Item тот тип который ты и пытаешься сохранить, как он там у тебя называется
да, либо так, либо вместо interfcae{} твой тип

Nibbler
07.05.2018
08:59:53
а если в метод два разных типа могу прийти. тогда если правильно понял: ( t , tt )

tsov
07.05.2018
09:01:33
var object interface{}; json.Decode(object); mgo.DB("жопа").Clone().Collection("с_ручкой").Insert(object)

Nibbler
07.05.2018
09:01:47
ок.
спс.
Допинаю все что Вы мне сказали.
все работает
спс

Denis
07.05.2018
09:03:14
?