yopp
Nick
по ссылке выше от yopp гляньте, там хорошие простые примеры
yopp
Anonymous
yopp
Почитайте весь раздел: https://docs.mongodb.com/manual/applications/data-models-tree-structures
Anonymous
yopp
Anonymous
Да и в целом монго интересен, nosql решения, редис и тд
Aleksandr
А какие аргументы будут в пользу NoSQL?
yopp
yopp
Если вы про диалект, то пожалуйста, приведите пример SQL выражений специально для деревьев, если он есть.
yopp
Вместе с примерами «граблей»
yopp
Если вы про реляционные табличные хранилища, то объясните, чем табличное представление деревьев выигрывает у документного.
Aleksandr
yopp
NoSQL это маркетинговый термин, не имеющий вообще никакого смысла.
yopp
Базы надо разделять по модели данных и свойствам.
yopp
Блочные, Key/Value, документные, табличные, графовые и т.д.
yopp
Табличные тоже разные бывают: строковые и колончатые.
Aleksandr
Замечательно. Я тоже учился в университете.
Aleksandr
Но вы так и не привели аргументов почему документная база данных лучше табличной для решения данной задачи.
yopp
Вы находитесь в группе про документное хранилище и это вы начали рекомендовать другую модель. Бремя доказательства «проще» лежит на вас.
yopp
Единственное логичное объяснение — имеющийся опыт.
yopp
Все остальные приведённые вами аргументы не выдерживают критики.
yopp
С таким уровнем аргументации, вам в @ru_dba.
Nick
кстати хороший пример, ты пишешь на русском, но все вокруг в русский не але и уж лучшеб на кривом, но на латыни))
Aleksandr
У нас как бы разговор не о сферических конях в вакууме. А о конкретной задаче и конкретном исполнителе этой задачи. Хорошо если это какой стартап или хоумпроект. А если промышленная разработка - то человеку надо будет еще аргументировать зачем нужна монга и почему нельзя это же сделать на имеющейся базе.
Aleksandr
Nick
без этого никак) лень она такая)))
yopp
Вы свой опыт проецируете на тысячу человек. Мне вот без разницы, что SQL, что монговский протокол. Более того, aggregation pipeline мне нравится гораздо больше огромных вложенных SQL выражений. Плюс он лучше читается и его проще поддерживать.
Монга с 4.0 в вопросах поддержки целостности данных уже почти сравнялась с «SQL» хранилищами. Глобально не хватает только нативной поддержки foreign keys, но я практически на 100% уверен что к 5.0 и это тоже завезут.
yopp
Порог входа в монгу ниже чем в «SQL», её специально делали для разработчиков
yopp
Не надо покупать талмуд в две тысячи страниц про SQL
yopp
Операционно на рынке вообще аналогов нет. Монга работает по принципу «включил и забыл до первого терабайта»
dima
Монга огонь. без вопросов
yopp
Пока в вилариббо будут выбирать на каком очередном косытле сделать фейловер в постгресе, в вилабаджо уже задеплоят шардед кластер на монге
dima
😂
Nick
а никто не видал конвертер синтаксиса AF в SQL?
Aleksandr
Nick
а потом на 1тб они завопили что места мало?)
yopp
не выгрести 300гб?
Nick
ну там наверное лярд записей, которые постоянно обновляются
yopp
но как обычно, стоит поглубже копнуть и там будет какой-то неудачный опыт
Aleksandr
231.3 GB если быть точно.
yopp
yopp
231гб данных это очень мало
yopp
так видите, 7 лет работает
Nick
)))
Nick
нет ничего более постоянного чем временное
yopp
вам стало больно, но при этом данные выросли в два раза и оно продолжает работать
yopp
в 2.313 если быть точно
Aleksandr
Нам стало больно сильно раньше. А потом мы с этой болью живем. И тут речь не про превосходство одной системы над другой. А про организационные проблемы.
Aleksandr
И это к вопросу "многие ДБА хотели бы поближе познакомиться с монгой" Так вот зачастую в реальности эти ДБА грудью ложатся на амбразуру.
yopp
с другой стороны плохо конечно. решение никак не критически не отказывает, чтоб его взяли и наконец починили и все продолжают страдать.
Andrey
ребят, подскажите работаю через драйвер mongo-go-driver
потребовались сессии и транзакции: сделал реплика сет, из оболочки все работает, из кода падает с ошибкой server selection timeout
куда копать?
yopp
проверить что connection uri правильно задан
yopp
и что у реплики реально есть праймари
yopp
и что все ноды видны из того места откуда соединяетесь
Andrey
сделал пока только одну ноду она же primary, connection string не менял (порт телнетом открывается)
Andrey
а.. когда когда делаем rs.initiate видимо нужно внешний адрес хоста указывать а не имя сервиса (в терминологии docker)?
Andrey
то есть
members:[{
...
"host":"mongo:27017"
}]
не покатит, правильно понимаю?
Andrey
при условии, что тестовая программа пока стучится из вне (не находится в docker сети)
yopp
если хост докер контейнера не резолвится в сети приложения, то используйте адрес
Andrey
@dd_bb да, заработало, спасибо, поставил пока внешний адрес
Roman
привет ребята
внезапно появилась такая штука:
2|web | 2019-1-9 16:49:51 Query for DB: { '$where': 'this.following > this.followers / 2',
2|web | parsed: true,
2|web | taskIds: 5c33508094a60624baf2cf06 }
2|web | { MongoError: $where is not allowed in this context
2|web | at queryCallback (/root/bentogram/node_modules/mongodb-core/lib/cursor.js:248:25)
2|web | at /root/bentogram/node_modules/mongodb-core/lib/connection/pool.js:532:18
2|web | at args.(anonymous function) (/usr/lib/node_modules/pm2/node_modules/event-loop-inspector/index.js:138:29)
2|web | at _combinedTickCallback (internal/process/next_tick.js:132:7)
2|web | at process._tickDomainCallback (internal/process/next_tick.js:219:9)
2|web | ok: 0,
2|web | errmsg: '$where is not allowed in this context',
2|web | code: 2,
2|web | codeName: 'BadValue',
2|web | name: 'MongoError',
2|web | [Symbol(mongoErrorContextSymbol)]: {} }
Roman
почему ему вдруг перестало нравится $where?
Roman
npm модуль mongoose-paginate-v2 не давал
Roman
mongoose-paginate дает :(
antofa
Всем привет. http://dpaste.com/1TG876Y В чем может быть проблема? В 1 случае я поле is_subscription_active выношу в операции группировки и результатов нет, а во 2ом - я его добавляю в $addFields и выдает 1 запись.
antofa
В обоих вариантах в консоли
is_subscription_active: true
(boolean)
Nick
значит у вас $subscription.active = false
antofa
нет, я это проверял