@MongoDBRussian

Страница 130 из 342
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
Если не указывать в find явно сортировку, то сортировка происходит по полю _id?
Результаты возвращаются в том порядке, в котором они лежат в хранилище

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
Так в чем проблема?
тем, что докер не lxc

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

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