Yuri
mgo.Insert(&item.Data) - или про это?
Yuri
без &
Pawel
пусть сделают драйвер jdbc чтобы в goland можно было её вертеть, тогда посмотрим на неё
Aleksey
Yuri
Yuri
там идет сохранение
Yuri
err = collection.Insert(item) - тут убрал
Aleksey
есть tidb cockroachdb совместимы с драйвервами mysql и postgres соответственно
Aleksey
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
}
}
]
}
]
}
}
Yuri
Denis
Denis
это ведь монговский ObjectID
Denis
?
Yuri
Denis
ты должен либо сгенерить айди у себя и передавать его монге
Yuri
а не надо ли его генерить вот в чем вопрос. Я что-то подобное делал сейас в другом месте гляну
Denis
или вообще не передавать и позволить монге генерить
Denis
а ты передаешь вместо айдишника пустую строку. но почему сообщение об ошибке такое не знаю, странно
Yuri
ну закомментим да проверим
Yuri
не-а ну пишет, что приходит массив, а ожидается объект
Denis
надо весь код смотреть, чето запутанное. залей на https://play.golang.org/
Denis
и модели и как ее инициализируешь и как сохраняешь
Roman
Yuri
а у нас же slice пришел
Denis
в Insert можно и слайс передать вроде как
Yuri
так ака …interface{} это просто набор данныхъ
Yuri
в виде слайса насколько помню
Yuri
и надо преобразование делать в стрктуру
Denis
чтобы сразу вставить много данных
Roman
ну там в монге документ это документ, а не массив
Yuri
ага.
Yuri
он так и говорит.
Roman
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 есть проверки
Yuri
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 чтоли?
Yuri
Ivahaev
Denis
ну second не надо передавать, только first
Yuri
ага весь json что decode(&first) - передаю
Denis
так где тут слайс-то получается я не совсем понимаю
Denis
ты должен передать просто First{}
Yuri
Denis
нет,col.Insert (docs ...interface{}) он принимает что угодно, что можно сериализовать в bson
Roman
эта зайдет нормально
Denis
мпау, bson.M{}, структуру
Denis
вопрос в том чего у тебя слайс-то передается откуда
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'
получаем