@MongoDBRussian

Страница 291 из 342
AstraSerg
21.08.2018
08:23:18
Вообще в целом, чтобы понять используется или нет
Единственное, что могу предложить, снимать данные при помощи $indexStats периодически и смотреть увеличивается ли ops

Google
Constantin
21.08.2018
08:51:29
yopp
21.08.2018
08:52:31
Прошу вас воздержаться от стикеров и подобных «шуточек»

docker, swarm, kubernetes
Если у вас есть успешный опыт автоматизации HA/FT деплоев с помощью контейнеризации, то поделитесь с чятом. Мой опыт негативный. Контейнеризацию можно использовать для изоляции и централизованного управления, но не для автоматического деплоя.

yopp
21.08.2018
09:00:39
И тогда данные будут во всех БД одинаковые всегда?
Да. Но с отставанием, которое будет зависеть от объёма данных, производительности нод в кластере, пропускной способности и задержек в сети.

личного — нет, я лишь посоветовал направление для изучения.
Это неверное направление. В монгу уже встроены необходимые инструменты: репликация и шардирование.

Dev
21.08.2018
14:09:41
доброго времени всем подключаюсь к монге через mongoose (nodejs) есть ли какие то опции в mongo driver что бы при попытке подключения к несуществующей бд - НЕ создавалась новая бд с таким именем?

Dev
21.08.2018
14:18:26
эмм? идет подключение к mongodb, название БД берется из переменной иногда название некорректно при этом создается новая БД с некорректным названием что делает меня грустить((

Dev
21.08.2018
14:19:35
не вариант

Google
Dev
21.08.2018
14:20:35
нужна именно или мулька в mongoose - что бы не создавала левых БД либо делать проверки что такая БД уже есть - это второй по приоритету вариант

AstraSerg
21.08.2018
14:21:20
эмм? идет подключение к mongodb, название БД берется из переменной иногда название некорректно при этом создается новая БД с некорректным названием что делает меня грустить((
Мой вопрос в другом :) Что бы вы хотели чтобы происходило вместо создания БД? Бай зе вей, фактически БД создается только после записи документа

Dev
21.08.2018
14:21:47
желательно, исключение

AstraSerg
21.08.2018
14:23:02
желательно, исключение
Это врядли, ибо идеология shemaless не соответствует.

Есть вариант предварительно проверить есть ли БД. Или после подключения проверить есть ли коллекция

Dev
21.08.2018
14:24:28
скорее всего так и придется делать

да, так и буду

хэх

спасибо за внимание)

Nick
21.08.2018
14:26:56
скорее всего так и придется делать
это не правильно, в общем случае ктото сможет создать базу или дропнуть ее пока вы думаете что сделать на следущем шаге

да даже второй экземпляр вашего же софта вам все может поломать

Dev
21.08.2018
14:28:22
базу никто не дропнет, а вот с новыми БД будет и правда неудобно(

но других вариантов не вижу

Nick
21.08.2018
14:28:51
лучше расскажите зачем вам потребовалось больше одной базы, да еще и создавать их во время работы приложения

Dev
21.08.2018
14:29:29
так они и не должны создаваться во время работы

по большей части

Nick
21.08.2018
14:30:32
я к тому что создание баз данных это админимстративная задача и никакого отношения к приложению иметь не должно

Dev
21.08.2018
14:31:13
в этом и проблема

Nick
21.08.2018
14:31:15
или вы хотите предостеречь себя от ситуации, когда ктото залез в настройки и криво вбил название базы?

Google
Nick
21.08.2018
14:32:42
тогда введите культуру изменения настроек и запретите это делать всем кроме одного-двух ответственных за это людей, идеально, выдав соотвевующие права

Dev
21.08.2018
14:33:24
в данном случае это не представляется возможным

Nick
21.08.2018
14:34:24
эх, тогда костыли как и выше уже говорилось, првоеряйте, что база есть в момент старта приложения и крашьтесь если базы нет

Nick
21.08.2018
14:36:27
если что список баз можно глянуть так https://docs.mongodb.com/manual/reference/command/listDatabases/

yopp
21.08.2018
15:15:48
Как сложилось? :)

Dev
21.08.2018
15:16:43
так)

это не изменить уже

Slava
21.08.2018
15:24:35
оказывается, выложили видосы с последнего хайлоада, и там как раз есть про casual consistency https://www.youtube.com/watch?v=2FEaCmdxX9E&list=PLH-XmS0lSi_yn4pCZVOHqWaqQ9trMpyLI&index=156

yopp
21.08.2018
16:16:47
понятно что операция с afterClusterTime будет висеть до момента пока нода не подгребёт оплог до этой точки. Интересно насколько дорого держать такие очереди

и получается что после 3.6 масштабирование с помощью добавлением нод в репликасеты стало бессмысленным

Google
yopp
21.08.2018
16:26:12
что очень хорошо

Admin
ERROR: S client not available

yopp
21.08.2018
16:29:10
Да, отдаст

Иначе запрос никогда не выполнится :)

AstraSerg
21.08.2018
16:30:49
Иначе запрос никогда не выполнится :)
Ну есть вариант, что будет ждать пока отставание будет 0 или около.

Да, отдаст
Но тогда вопрошающий должен знать время, на которое нужно взять данные...

yopp
21.08.2018
16:32:36
AstraSerg
21.08.2018
16:34:39
В худшем случае — никогда не будет
Согласен. Можно конечно максимальное время ожидания, но это уже хрень непонятная будет.

yopp
21.08.2018
16:38:13
Но тогда вопрошающий должен знать время, на которое нужно взять данные...
Да, для этого во все команды добавили clusterTime. В видео это хоть и очень сумбурно рассказывают, но его стоит посмотреть

Dmitry
21.08.2018
20:20:39
Ребят, а может кто заделиться линком на гитхаб с готовым любым проектом на: react/redux/express/mongoose/mongodb?

Что, ни у кого из этой группы нет готового проекта?

Vova
21.08.2018
21:07:34
Только на С# есть)

Constantin
22.08.2018
08:44:37
Ребят, а может кто заделиться линком на гитхаб с готовым любым проектом на: react/redux/express/mongoose/mongodb?
Вы зря ищете скоповый проект. Приложению на react должно быть все равно, mongoose + mongodb у вас там, или просто нативный драйвер mongodb, или sequelize с mysql, или micro, или koa, или вообще не nodejs. Это разные слои. Ну и всегда есть гугл или яндекс. Вот первая ссылка из поиска https://github.com/Bikranshu/express-mongo-react-redux

Victor
22.08.2018
13:51:23
Привет. Нарпример, есть следующая структура. Как можно обновить map.0.list.1.name, когда известны только id этих объектов? { name: hello map: [ { id: 1, list: [ { id: 1, name: x }, { id: 2, name: y }, { id: 3, name: z } ] }, { id: 2, list: [ { id: 10, name: a }, { id: 11, name: b }, { id: 12, name: c } ] } ] }

AstraSerg
22.08.2018
13:57:29
Привет. Нарпример, есть следующая структура. Как можно обновить map.0.list.1.name, когда известны только id этих объектов? { name: hello map: [ { id: 1, list: [ { id: 1, name: x }, { id: 2, name: y }, { id: 3, name: z } ] }, { id: 2, list: [ { id: 10, name: a }, { id: 11, name: b }, { id: 12, name: c } ] } ] }
добрый день, можно использовать фильтр через dot-нотацию. То есть: {'map.id': 1} он проверит все объекты в списке Вот здесь почитать можно UPD: кавычки обязательны

Victor
22.08.2018
14:26:19
добрый день, можно использовать фильтр через dot-нотацию. То есть: {'map.id': 1} он проверит все объекты в списке Вот здесь почитать можно UPD: кавычки обязательны
спасибо за ответ, но доконца не понял вашу мысль. map.0.list.1.name == 'y' - как обновить это значение? реально ли это сделать одним запросом?

Google
Victor
22.08.2018
14:51:40
извините, отвлекли, ща поясню
нашел пока такое решение https://docs.mongodb.com/manual/reference/operator/update/positional-filtered/#update-nested-arrays-in-conjunction-with

AstraSerg
22.08.2018
14:54:20
попробуйте так: db.coll.update({'map.list.name': 'y'}, {$set: {....}})

М
22.08.2018
14:55:09
всем привет! подскажите с таким вопросом как нужно работать с позицией документа в коллекции? на данный момент у каждого документа я задаю поле Position. Документы рендерятся в приложении в последовательности исходя из Position. Но если нуеобходимо изменить позицию документа или удалить документ, то помимо самого действия с документом требуется еще изменить и Position других документов (изменить Position соседних или уменьшить на 1 позицию всех последующих документов соответственно). Сейчас я вхялся переписывать весь проект и задался вопросом: возможно предусмотрены какие-то встроенные средства для этого всего? Беглый гуглинг никаких результатов не дал

Victor
22.08.2018
15:02:48
попробуйте так: db.coll.update({'map.list.name': 'y'}, {$set: {....}})
так не получается. сделал так db.coll.update( {'map.list.id': 2}, {'$set': {'map.$[].list.$[list_item].name': 'z'}}, {arrayFilters: [{'list_item.id': 2}]} ) ? но все равно спасибо

Bro
22.08.2018
15:19:44
"pymongo.errors.ServerSelectionTimeoutError: mongo1:27017: [Errno 24] Too many open files" никто с таким не сталкивался?

Bro
22.08.2018
15:28:19
oh thank you

М
22.08.2018
15:29:03
Нет, вам необходимо самостоятельно обновлять значения position.
и соответственно иметь поле position тоже необходимо?

Страница 291 из 342