Александр
Можно но не знаю на что поменять sqlite.
Roman
bbolt
Roman
правда джойны руками, но так даже хардкорнее
Pawel
всё херня. для sql нативно есть только маргинальщина, а kv - в топку, ибо дляпрактических задач нужна консистентность данных, а её проще прописывать на 4g языке, а не на Го
Александр
я бы не против (в sql я слаб). Возможно в bbolt такой запрос реализовать DB.Raw(`SELECT t.*, (SELECT COUNT(*) FROM contacts as tt WHERE tt.reg_address=t.reg_address) AS count FROM contacts as t WHERE reg_address != "" GROUP BY reg_address ORDER BY count DESC`).Scan(&address)?
Pawel
бггг)))
Александр
остальные принципе у меня простые запросы
Pawel
можно. но получится скорее всего факин шэт
Pawel
в болте только самое простое можно хранить, где связей между сущностями минимум, а лучше чтобы вообще не было. И когда на производительность можно ложить болт
Александр
ну у меня вообще производительность значения не имеет
Pawel
тогда bolt + storm
Александр
я видел что есть ещё firebird с ним кто то имел дела на го?
Pawel
если на производительность плевать, то я бы хранил данные тупо в файле в жсон если уж на то пошло.
Александр
мне главное вот то запрос реализовать, смысл в том что он выдает разновидности адресов и сортирует по количеству использования
Petr
я видел что есть ещё firebird с ним кто то имел дела на го?
Мне кажется он тяжеловат и не нужен для ваших нужд
Александр
хотя это можно решить... спасибо storm мне понравился по синтаксису... а какая из нативных библиотек мне больше подойдет? 20к записей +- 5к
Александр
хотя я думаю при таких объёмах любая )))
Pawel
мне главное вот то запрос реализовать, смысл в том что он выдает разновидности адресов и сортирует по количеству использования
в bolt это сводится к выборке по bucket-у и утилитарным манипуляциям с полученным массивом.
Yuri
всем привет
Yuri
Может подскажете, делаю сохранение данных в mongo. Есть метод save правильно ли я понимаю, что через пустой интерфейс могу отправить любую структуру на сохранение в коллекции, через данный метод?
Pawel
storm ql bunt
на bunt давно облизываюсь, интересные возможности. Есть опыт в проде?
Мерль
на bunt давно облизываюсь, интересные возможности. Есть опыт в проде?
Да, используем WAL, поэтому быстрый на запись Есть мультиндекс
Pawel
Впечатляет k-Nearest Neighbors
Aleksey
ql как замена sqlite нормальная, помедленней, но нативна.
Yuri
gopkg.in/mgo.v2 - проблему накопал, передаю пустой интерфейс, а преобразование не делаю в структуру, теперь думаю как решить эту проблему. Есть вариант Сделать какой-то единый interface и работать с ним
Roman
обрати внимание, что имена полей в базе получаются как lowercase к именам структуры го, если не указал тэг bson со своим именем
Roman
нет, не обязательно
Yuri
ага видел. Обращал. ДУмал, что можно как-то сделать один метод, через который сохранять можно было бы.
Roman
он принимает пустой интерфейс и разгребает его (докапывается до исходного значения) через рефлексию
Yuri
ну у меня сейчас:
Yuri
BSON field 'insert.documents.0' is the wrong type 'array', expected type 'object'
Roman
а ну ты слайс передал похоже
Roman
хотя не, там что то другое
Roman
покажи весь код
Yuri
ну получил json decode
Yuri
потом …interface{} на save
Roman
куда json decode? в intrrface{}? тогда там мапа будет
Yuri
item := model.ItemWrapper{} err := decoder.Decode(&item) err = mgo.Insert(&item.Data) Insert(object ...interface{}) err = collection.Insert(*item)
Yuri
сокращенно
Roman
mgo.Insert это что?
Roman
базу создаешь?
Roman
3 и 4 строки не понял
Yuri
3 отправляю в метод схохранить в mongo
Roman
в 5й надо collection.Insert(&item)
Yuri
4 в монге сохранение
Roman
3 отправляю в метод схохранить в mongo
а куда? это какая коллекция?
Yuri
// get object for add to collection item := &object // get session and collection session, collection, err := c.urlCollection() // check errors if err != nil { return err } // set data to collection err = collection.Insert(&item) // check errors if err != nil { fmt.Println(err.Error()) return err } // close session thred defer session.Close() return nil
Yuri
весь метод
Roman
по идее надо так: mgo.DB("database").Clone().Collection("coll").Insert(&item)
Yuri
urlCollection
Yuri
// copy mongo session session = c.session.Copy() urlCollection = session.DB(DATABASE).C(COLLECTION)
Yuri
collection.Insert(&item)
Yuri
session.DB(DATABASE).C(COLLECTION).Insert(&item)
Yuri
вся строка получается
Roman
ну да все верно
Yuri
ага.
Yuri
поменял с * на & ошибок нет и сохранения нет
Roman
item может быть interface{}, тогда просто Insert(item)
Yuri
даже bson
Roman
чем проверяешь? смотри тулзой что лежит в базе
Yuri
тулзой смотрю
Yuri
goland дебаггер
Yuri
error = {error}
Yuri
и все
Eugene
В базе точно нету?
Roman
не, я про содержимое базы
Roman
какой там док упал
Roman
в нее
Roman
в коллекцию
Yuri
даже коллекции нет
Yuri
до …interface{} работало. Создавало коллекцию если ее нет, решил порефачить.
Roman
interface{} передай без &
Yuri
уже