@MongoDBRussian

Страница 263 из 342
Nick
19.06.2018
21:08:49
js is base to learn node.js, node.js is base to create you web (http) server application. It's really simple with node.js but you should learn it before use databases.

Nklya
19.06.2018
21:09:31
hey are you the only one who can speak English here
This is russian speaking channel about MongoDB. How is this related to Electron?

Ak47
19.06.2018
21:10:29
ooh no problem i used Mongodb to but i just wanted to ask a question sorry

Nick
19.06.2018
21:11:22
I'm not the only one, I think other people don't read chat all time. Moreover your question is offtop. So if you need some help with mongodb there is english mongodb group https://t.me/mongo_db

Google
Nick
19.06.2018
21:13:51
And when you will with electron you can google "how to work node.js and $some_shit" it should give more answers than only electron+some_shit

Andruha
20.06.2018
07:52:27
Всем привет. Юзаю монгуз. Есть модель: const game = new Schema( { name: { type: String, required: true }, items: [ { item: { type: Schema.Types.ObjectId, ref: 'item' }, order: { type: Number, default: 0 } } ] } ); Когда обновляется коллекция 'item', например, какие-то доки в ней удаляются, соответственно я хочу, чтобы эти же доки удалялись и в items в модели game. Делаю так - удаляет вообще все из items в модели game: await Game.update({ _id: id }, { $pull: { items: { item: { $nin: items } } } }); Вот так работает: const game = new Schema( { name: { type: String, required: true }, items: [{ type: Schema.Types.ObjectId, ref: 'item' }] } ); await Game.update({ _id: id }, { $pull: { items: { $nin: items } } }); Но мне нужен именно первый вариант модели для реализации ручной сортировки items внутри game. Ну и сам вопрос - почему в первом варианте не работает корректно $pull, что я делаю неправильно? Заранее спасибо.

headbody
20.06.2018
08:33:01
Простите, но я совсем скрипт кидди и буду задавать совсем глупые вопросы, да я пробовал гуглить, голова пока кругом идёт. Мне нужно конвертировать файлы из csv в json, какие утилиты для этого есть, чтобы mongo корректно кушал json? Ибо пока что я как лох пользуюсь http://www.convertcsv.com, потому что там есть отдельная удобная кнопочка под монго, но вебом не всегда удобно пользоваться.

Slava
20.06.2018
09:44:06
забавно, vscode выпустили апдейт в котором теперь можно работать с монгой прямо из vscod'a https://code.visualstudio.com/docs/azure/mongodb

Slava
20.06.2018
09:46:14
еще не успел

Andruha
20.06.2018
10:07:49
еще не успел
ну как-то работает, данные показывает, хз насколько хватит функционала, надо будет еще покурить настройки и возможности

M
20.06.2018
15:59:29
Ребят, есть какие-то предпосылки не ставить mongo в проде в docker/kubernetes

Stepan
20.06.2018
16:00:09
я слыхал, что в докере другая файловая система и могут быть проблемы

но о конкретных случаях не слышал

Oleg
20.06.2018
16:01:28
Ребят, есть какие-то предпосылки не ставить mongo в проде в docker/kubernetes
зависит от прода докер это из разряда долго запрягаем и быстро едем

Google
Oleg
20.06.2018
16:02:12
долго запрягаем? кого?
деплой окружения

Ruslan
20.06.2018
16:02:35
деплой окружения
+1, очень долго репликасет настраивал

Oleg
20.06.2018
16:03:27
настроить кибернетс\ранчер это муторная тема чтоб это все балансилось, контейнеры линковались и писали в нужный файловый драйвер

M
20.06.2018
16:04:11
получается предпосылок НеДелать этого нет?

Oleg
20.06.2018
16:05:19
продакшеном правит бизнес если у вас 3 физических хоста то быстрее и следовательнее дешевле не парится с этим или пользоваться просто докером с докер-компоуз

Oleg
20.06.2018
16:06:40
у нас средний-маленький прод, 40 хостов
а команда сколько человек?

M
20.06.2018
16:06:56
Oleg
20.06.2018
16:07:05
есть время\ресурсы потратить пару недель?

M
20.06.2018
16:07:09
потенциально будет полтора человека

Oleg
20.06.2018
16:08:30
в принципе можно попробовать ранчер, он для старта попонятнее чем кибернетс

M
20.06.2018
16:08:31
есть время\ресурсы потратить пару недель?
да есть впринципе. но я хотел больше опыт услышать, мол держим терабайты монги в докере в kuber полет нормальный

Oleg
20.06.2018
16:09:22
может здесь есть народ с терабайтами :)

у меня просто немного другой стек и данные не основной продукт микросервисы и парочку крупных приложений в купе с дб

M
20.06.2018
16:10:34
кстати кто знает про драйвера, как быстро они понимают что мастер поменялся?

yopp
20.06.2018
16:30:08
Контейнеризация подразумевает stateless приложения. А базы данных statefull и с высокими требованиями к скорости и пропускной способности файловой системы. Вторая проблема: failover и scalability. Так как шедулер контейнеров обычно ничего про состояние приложения не знает, он может начать совершать действия которые приведут к отказу кластера.

Или что хуже — к потере данных.

Google
yopp
20.06.2018
16:35:21
Могу дать два совета: не использовать шедулеры для контейнеров с базой данный и не использовать виртуальных или сетевых файловых систем, особенно если они поддерживают миграцию томов между контейнерами. Не слежу за последними наработками в этой области, может быть что-то изменилось.

Я пытался несколько лет назад ранчеровский cattle с монгой подружить — не смог.

Результат всегда был примерно один: шедулер тем или иным образом вместо работающие реплики деплоил пустую.

Реально весь процесс выборов займёт несколько секунд, после чего все клиенты закроют соединения и откроют их снова. Переключения без даунтайма кажется всё ещё не завезли.

yopp
20.06.2018
16:42:33
Вы говорите загадками

Кто «все» и что «кричали»?

M
20.06.2018
16:45:27
Кто «все» и что «кричали»?
что всё не работает. @dd_bb пока конечно надо изучать логику работы драйвера.

yopp
20.06.2018
16:48:01
Если вы будете говорить не загадками и абстракциями, а конкретными фактами, возможно, вам тут помогут. Иначе ??‍♀️

Nick
20.06.2018
16:51:05
не знаю не знаю) я сегодня для теста положил ровно 90% нод оставил одну и арбитр, все кричали
нельзя сразу класть 90%. Допустимо за один раз положить не больше (N/2)-1, т.е. должно остаться большинство

Nick
20.06.2018
16:57:55
потому что никто не дает гарантий о рабоспособности кластера если помирает нод больше чем простое большинство

есть такая проблема split brain и она ограничивает допустимое количество мгновенно умирающих нод

M
20.06.2018
16:59:50
Nick
20.06.2018
17:00:25
@dd_bb кстати а монга переживет если убивать по одной ноде после каждый выборов?

M
20.06.2018
17:02:15
да, она слейв и поэтому кластер развалится
а чего она не выбрала сама себя мастером

Nick
20.06.2018
17:02:38
потому что у нее прописано что их было больше двух

M
20.06.2018
17:02:43
я пологал что такое поведение должно быть, выбрать себя мастером а драйвер сам найдёт её потом

Google
Nick
20.06.2018
17:02:54
произведите реконфиг убрав лишние реплики и она станет мастером

Nick
20.06.2018
17:03:21
эм

как вы настраиваете репликасет?

сколько реплик в репликасете?

Nick
20.06.2018
17:04:19
тогда как вы 90% положили?

M
20.06.2018
17:07:40
тогда как вы 90% положили?
да это не 90% конечно, но почти все, кроме одной

Nick
20.06.2018
17:08:08
т.е. вы погасили 2 ноды из трех

M
20.06.2018
17:09:40
да, я ожидал что вообще всё прозрачно пройдёт, или с минимальными потерями.

т.е. вы погасили 2 ноды из трех
хотя пока данных точных все равно нет, буду уже на днях больше тестов делать

Nick
20.06.2018
17:11:43
N нод в реплика сете позволяют пережить падение (N-1)/2 нод

никакой магии

yopp
20.06.2018
17:43:49
@dd_bb кстати а монга переживет если убивать по одной ноде после каждый выборов?
Если не ошибаюсь, то топология из rs.config берётся. Не помню про алгоритм расчета большинства, искать некогда. Скорее всего либо в репозитории спецификации монги, либо в wiki соснового репозитория описана логика

?
20.06.2018
19:53:39




Сергей
21.06.2018
08:02:02
Привет всем) Есть вопрос, может кто-то сможет подсказать) Использую mongoose, хочу решить задачу. Есть коллекция posts. У каждого поста есть поле comments. А сами комментарии лежат в отдельной коллекции comments. Как сделать так, чтобы при запросе post, в него сразу подтягивались комментарии? Виртуальным полем не получается, потому что его нельзя сделать асинхронным. Какие еще есть варианты?

Сергей
21.06.2018
08:14:54
Я забыл написать про то, что я не хочу это в каждом контроллере писать) Хочу описать один раз в модели, чтобы оно постоянно подтягивалось, как внутреннее поле

Google
M
21.06.2018
08:59:24
ребят подскажите а есть ли какой то интсрумент чтобы сделать версионость документа чтобы можно было откатиться назад

или на какую то версию

yopp
21.06.2018
09:21:43
Что-то с именованием фильтра. Проверьте что там все буквы латинские.

Stivn
21.06.2018
10:54:27
запустил express+mongodb через pm2 и теперь постоянно перезапускает сервер: Change detected on path db/diagnostic.data/metrics.interim for app app - restarting PM2 | Stopping app:app id:0 PM2 | App [app] with id [0] and pid [11760], exited with code [0] via signal [SIGINT] PM2 | pid=11760 msg=process killed PM2 | Starting execution sequence in -fork mode- for app name:app id:0 PM2 | App name:app id:0 online

что за файл? как можно остановить рестарт?

не смог ничего найти по этому файлу metrics.interim

Сергей
21.06.2018
12:01:56
что за файл? как можно остановить рестарт?
а папка с базой у тебя не лежит в папке с проектом?

Stivn
21.06.2018
12:19:27
Да

Artem
21.06.2018
12:21:58
что за файл? как можно остановить рестарт?
насколько я помню это папка diagnostic.data куда пишется диагностическая информация конкретного инстанса. можно отключить сбор диагностики, стартовав mongod с параметром setParameter: diagnosticDataCollectionEnabled: false

а вы не могли бы привести версию MongoDB, и какой движок используете?

p
22.06.2018
08:37:54
всем привет! В коллекции у каждого документа есть массив объектов с еще одним массивом. Нужно все элементы последнего массива обновить - взять два поля и вычислить третье. Как это лучше сделать?

p
22.06.2018
10:16:07
если вычислить, то на бэкенде своем, если одним запросом, то через агрегацию
все вычисления внутри одного элемента, агрегация тут не поможет, если я правильно понял. сейчас сделал find() по коллекции и два цикла foreach по результатам запроса

Александр
23.06.2018
17:34:57
ребят, что-то не въезжаю, мне нужно из вложеного массива сделать выборку элементов, которые были добавлены за последние 24 часа (поле time есть), как мне это сделать?

проблема в том что он мне выдает все вложенные документы, если есть записи за последние 24 часа, а мне нужны только документы за 24 часа

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