@gogolang

Страница 1049 из 1630
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 есть проверки

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
сразу. или в монге нельзя хранить «data» : [{object}, {object}]
Документ в Монге — это документ, а не пачка документов.

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{}

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

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

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
Insert(object ...interface{})
item это функция чтоли? она какого типа вот переменаая item

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 наиболее распространенный?

Igor
07.05.2018
08:56:41
go fmt ?!
эт то да) но почитать именно)

tsov
07.05.2018
08:56:56
Nibbler
07.05.2018
08:57:07
надо for _, item:=range object
через loop сохранять имеете ввиду

Denis
07.05.2018
08:57:08
я кажется понял к чему ты ведешь
collection.Insert(item) вот здесь item должен оказаться типом твоей структуры

Ivahaev
07.05.2018
08:57:11
эт то да) но почитать именно)
https://golang.org/doc/effective_go.html

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
ой е, так то да, жопа будет

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
?

Страница 1049 из 1630