Yuri
mgo.Insert(&item.Data) - или про это?
Yuri
без &
Roman
mgo.Insert(&item.Data) - или про это?
не, я про тот collection.insert. эту строку я у тебя так и ге понял нафига она
Pawel
ql как замена sqlite нормальная, помедленней, но нативна.
ага, инструментов ни каких, sql запускать из консоли или писать к ней свой гуй. нафиг нафиг эту маргинальщину
Pawel
пусть сделают драйвер jdbc чтобы в goland можно было её вертеть, тогда посмотрим на неё
Yuri
не, я про тот collection.insert. эту строку я у тебя так и ге понял нафига она
у меня отдельная структура mgo и у нее методы уже
Yuri
там идет сохранение
Yuri
err = collection.Insert(item) - тут убрал
Aleksey
есть tidb cockroachdb совместимы с драйвервами mysql и postgres соответственно
Denis
у меня отдельная структура mgo и у нее методы уже
покажи структуру Item, что ты там написал. bson-тэги указал же?
Yuri
lf
Yuri
да
Yuri
5 минут
Denis
еще в col.Insert можно передать bson.M{ "key": item.Key }
Yuri
отправляю в  mgo: &{ObjectIdHex("") true ads aa} BSON field 'insert.documents.0' is the wrong type 'array', expected type 'object'
Yuri
ошибка таже
Yuri
{ "data": { "schemeId" : "181", "components" : [ { "id":"181", "ids" : [ { "id": 10 } ], "satCondition" : "sat", "condition" : [ { "params" : { "comment" : "ololo", "compare" : "djdj" }, "leftCompare" : { "select" : "asd", "param" : 10 }, "rightCompare" : { "select" : "asd", "param" : 10 } } ] } ] } }
Denis
отправляю в  mgo: &{ObjectIdHex("") true ads aa} BSON field 'insert.documents.0' is the wrong type 'array', expected type 'object'
ммм, ошибка странная, но проблема точно есть в том что ObjectIdHex("")
Yuri
type DataComponents struct { Data SchemeParams json:"data" } type SchemeParams struct { Id bson.ObjectId json:"id" bson:"_id,omitempty" SchemeId string json:"schemeId" bson:"schemeId" Components []Component json:"components" bson:"components" } // Component structure type Component struct { Id string json:"id" bson:"id" Ids []Ids json:"ids" bson:"ids" SatCondition string json:"satCondition" bson:"staCondition" Condition []Condition json:"condition" bson:"condition" } // number of blocks type Ids struct { Id int json:"id" bson:"id" } // condition block type Condition struct { CondBody []CondBody json:"conditionBody" bson:"conditionBody" } // condition body struct type CondBody struct { Params Parametrs json:"params" bson:"params" LeftCompare Compare json:"leftCompare" bson:"leftCompare" RightCompare Compare json:"rightCompare" bson:"rightCompare" } //params block of condition type Parametrs struct { Comment string json:"comment" bson:"comment" Comp string json:"compare" bson:"compare" } // compare block of condition type Compare struct { Select string json:"select" bson:"select" Param int json:"param" bson:"param" }
Denis
это ведь монговский ObjectID
Denis
?
Denis
ты должен либо сгенерить айди у себя и передавать его монге
Yuri
а не надо ли его генерить вот в чем вопрос. Я что-то подобное делал сейас в другом месте гляну
Denis
или вообще не передавать и позволить монге генерить
Denis
а ты передаешь вместо айдишника пустую строку. но почему сообщение об ошибке такое не знаю, странно
Yuri
ну закомментим да проверим
Yuri
не-а ну пишет, что приходит массив, а ожидается объект
Denis
надо весь код смотреть, чето запутанное. залей на https://play.golang.org/
Denis
и модели и как ее инициализируешь и как сохраняешь
Yuri
а у нас же slice пришел
Denis
в Insert можно и слайс передать вроде как
Yuri
так ака …interface{} это просто набор данныхъ
Yuri
в виде слайса насколько помню
Yuri
и надо преобразование делать в стрктуру
Denis
чтобы сразу вставить много данных
Roman
ну там в монге документ это документ, а не массив
Yuri
ага.
Yuri
он так и говорит.
Yuri
в виде мапы
надо еще раз перечитать. Спорить не буду поверю так.
Roman
у тебя item должен успешно каститься в мапу или структуру
Roman
по другому в монгу не зайдет
Yuri
да, но у меня разный набор данных передается.
Denis
а, ну да, там же docs ...interface{})
Denis
если много параметров надо не слайсом а через запятую
Yuri
одна 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" }
Yuri
вторая выше.
Roman
попробуй globalsign/mgo, там в bson есть проверки
Denis
ну да, тогда он не сериализуется в bson, да
Denis
так подожди ты передаешь слайс в Insert? в слайсе хранятся несколько структур, ты их все хочешь по одной сохранить?
Yuri
пачкой
Yuri
это один документ
Denis
так почему это один документ а ты передаешь массив?
Yuri
я всю структуру кидаю ему.
Yuri
пачкой
Roman
структура не бывает пачеой
Yuri
сразу. или в монге нельзя хранить «data» : [{object}, {object}]
Roman
либо пачка либо структура
Denis
я кажется понял, то есть у тебя struct First { field Second } struct Second{ somefield }
Denis
ты пытаешься сохранить first, но передаешь слайсом и first и second чтоли?
Ivahaev
сразу. или в монге нельзя хранить «data» : [{object}, {object}]
Документ в Монге — это документ, а не пачка документов.
Denis
ну second не надо передавать, только first
Yuri
ага весь json что decode(&first) - передаю
Denis
так где тут слайс-то получается я не совсем понимаю
Denis
ты должен передать просто First{}
Yuri
так где тут слайс-то получается я не совсем понимаю
…interface{} на методе insertMgo принимает мапу, как выяснили first
Denis
нет,col.Insert (docs ...interface{}) он принимает что угодно, что можно сериализовать в bson
Roman
эта зайдет нормально
Denis
мпау, bson.M{}, структуру
Denis
вопрос в том чего у тебя слайс-то передается откуда
Yuri
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' получаем