
Kirill
01.10.2017
18:17:41
спасибо!

Arthur
04.10.2017
04:26:30
Всем привет. Вопрос , как правильно запускать Монгодб на проде. Если используется две прод ноды для сервера nodejs. Которые переключается между собой, если одна вышла из строя

Stepan
04.10.2017
05:30:40
Почитай про replica sets

Timur
04.10.2017
11:36:58
Если не указывать в find явно сортировку, то сортировка происходит по полю _id?

Google

yopp
04.10.2017
11:45:09
https://docs.mongodb.com/manual/reference/method/cursor.sort/#return-natural-order

Timur
04.10.2017
11:46:41
Спасибо. Получается, лучше всегда явно указывать сортировку. Сейчас на разных окружениях получил разный порядок и не мог понять, в чем дело .__.

yopp
04.10.2017
11:46:59
Если она нужна, то конечно.
Но надо учитывать что без индекса сортировка может быть очень дорогим занятием.
Ну или сортировка при неверном направлении индекса.
В смысле не «может» а будет

Timur
04.10.2017
11:52:44
Кстати, вопрос по поводу индексов. Есть какой-нибудь тул или подход для того, чтобы сохранять изменения индексов, и их можно было одной командой накатить на новое окружение?

yopp
04.10.2017
11:58:21
В самой монге — нет. В ODM обычно встроено что-то для этого.

Ruslan
04.10.2017
16:14:32
камрады, у меня монго крутится в докер контейнерах и надо иметь возможность кидать команды из консоли (удалять тестовые БД), можно ли монгошел поставить отдельно?

yopp
04.10.2017
16:16:02
каешно

GNU/Docker
04.10.2017
16:16:11
а в чём проблема? Указать ему порт.

yopp
04.10.2017
16:16:42
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/#packages

Google

Ruslan
04.10.2017
16:18:01
а на маке?
я тут подумал, туплю, в контейнере же консоль есть, можно просто дать конкретную команду на удаление БД

Фёдор
04.10.2017
16:20:49
А в чем полблема сделать
docker exec -it container_name mongo

Ruslan
04.10.2017
16:21:13
как ему сказать, чтобы удалить конкретную БД?

Фёдор
04.10.2017
16:21:37
Не совсем понял

Ruslan
04.10.2017
16:21:38
--eval ?
docker exec -it container_name mongo --eval "{use test_xxx; db.dropDatabase()}"

Фёдор
04.10.2017
16:22:14
У тебя несколько контейнеров с разными монгами, и тебе надо почистить одну из них или как?
А
Да не
После команды откроется cli монги внутри контейнера
И там уже сделал use dbname
db.drop...
Сделай'

GNU/Docker
04.10.2017
16:23:14
поставить монгошелл на мак.

Фёдор
04.10.2017
16:23:14
Можно по идее одной командой

GNU/Docker
04.10.2017
16:23:22
и указать ему порт.

Фёдор
04.10.2017
16:23:28
Да зачем ставить, если он и так есть внутри контейнера

GNU/Docker
04.10.2017
16:23:30
нет бы в контейнер поэвалить.

yopp
04.10.2017
16:23:59
зачем вы внутрь контейнера вообще лезете

Google

Фёдор
04.10.2017
16:24:28
А почему нет, если это тестовое окружение?

yopp
04.10.2017
16:24:38
ох

Ruslan
04.10.2017
16:24:40
тестю я, не создавать же его заново
запустил раз тестовый контейнер монги и херачу
хотя да, что-то в этом есть, можно же перед тестом создавать свой контейнер, а потом гасить

Tenni
04.10.2017
16:25:18
есть же studio 3t на маке

Ruslan
04.10.2017
16:25:36
там много чё есть, знать бы про это

Tenni
04.10.2017
16:25:52
новый монгошеф https://studio3t.com

Фёдор
04.10.2017
16:26:40

Ruslan
04.10.2017
16:26:54
у меня компас уже есть

yopp
04.10.2017
16:27:06
в том что нафига вам тогда докер

Ruslan
04.10.2017
16:27:17
ну прав, прав...

Tenni
04.10.2017
16:27:21

Ruslan
04.10.2017
16:27:28
да

yopp
04.10.2017
16:27:35
но зачем?

Tenni
04.10.2017
16:27:37

Ruslan
04.10.2017
16:27:38
я лучше контейнер буду создавать и мочить, так проще

yopp
04.10.2017
16:27:53
нафига там что-то дропать?

Tenni
04.10.2017
16:27:54
да
драйвер или --eval, выбор верный был.

yopp
04.10.2017
16:28:08
не монтируй тогда ничего из контейнера и будет тебе один контейнер == одна база

Google

Ruslan
04.10.2017
16:28:46
логично
я обернул вызов теста монго контейнером в мейкфайле, если он фейлится, то контейнер не убивается... щас починим

yopp
04.10.2017
16:31:41
дропать базы, особенно в скриптах — к проверке бекапов
потому что однажды этот ваш скрипт чонибудь в продакшене дропнет
потому что причины

Ruslan
04.10.2017
16:33:23
вот это меня как раз напрягало

Фёдор
04.10.2017
16:34:02
тем, что докер не lxc
Это обёртка. И тем не менее это не отвечает на вопрос, почему нельзя залезать в контейнеры.

yopp
04.10.2017
16:34:47
потому что докер вам дали для абстракции
если ты лезешь в контейнер, то ты или разрабатываешь/отлаживаешь контейнер или ты не так варишь докер

Ruslan
04.10.2017
16:37:23
у меня просто монга была одна в докере, я её и мучал, пока разбирался
привык и даже не подумал, что на тесты можно отдельный контейнер поднимать, хотя тема очевидная

Фёдор
04.10.2017
16:39:25
Если мне нужна чистая база, проще зайти а контейнер и дропнуть ее, чем подчищать потом вольюмы, которыми насрал докер
На проде никто в контейнеры залезать не будет
Чтобы чё то сделать
А на тестах я не вижу проблем

yopp
04.10.2017
16:42:07
ох

Tenni
04.10.2017
16:43:12
подход все же неверный. Ну это к холивару уже идет все.

GNU/Docker
04.10.2017
16:48:05
У докера появился gc.

Peter
04.10.2017
18:14:40
Есть у кого видосики с старых курсов Mongo University? Или где можно посмотреть хорошие курсы по Mongo