Anonymous
там база 5Гб. оно ж так все в памяти будет
Daniil
https://docs.mongodb.com/manual/reference/method/cursor.next/#cursor.next
Anonymous
А как в JS драйвере выполнить такой поиск?
db.getCollection('videos').find({tags: {$in: [/Awesome/]}})? по совпадению в строке
Yaroslav
Alexey
Друзья, подскажите, что я делаю не так?
Alexey
Alexey
Видимо сначала надо проинициализировать реплику
yopp
да, сначала делпоить csrs, потом уже подключать монгосы
yopp
монгосам нужен replicaSet connection string с указанием имени реплики и seed листа
yopp
но если вам для локальной разаработки возьмите mlaunch
yopp
http://blog.rueckstiess.com/mtools/mlaunch.html
Alexey
yopp
очень рекомендую прочитать весь плейбук, с самого начала, ссылку на который я вам дал
yopp
там подробно описаны все шаги
yopp
в том порядке, в котором они выполняются
Alexey
Хорошо. Спасибо))
yopp
будут вопросы после прочтения — задавайте :)
Ilya
Всем привет, что-то не могу придумать правильный запрос.
Подскажите пожалуйста, есть поле
"lastRefresh" : ISODate("2019-11-20T21:00:00.000Z")
Как мне вывести все совпадения, когда время не 00:00:00
Т.е. вот эта запись как раз подходит. Дата может быть в принципе любой, мне важно именно время.
yopp
Ilya
а диапазон дат как-то ограничен?
по логике там только вчерашнее число т.е. на сегодня это 20.11.2019
Но может быть что-то другое, не уверен, что везде вчерашнее
По этому и надо только время проверить
yopp
$gt ISODate("2019-11-20T21:00:00.000Z»), $lte ISODate("2019-11-20T22:00:00.000Z»)
yopp
(или $lt с верхней границы)
yopp
Такая конфигурация недопустима в csrs
yopp
Минимальное количество нод: 3 и или больше, но при условии что количество нод — нечётное
yopp
mongos
Alexey
Хм, но ведь тогда получается, что mongos - узкое место этой схемы. Если он упадет, будет недоступна вся система. mongos можно как-то реплицировать?
yopp
yopp
Опять-же, 3 это неплохое начало
yopp
В качестве seed string необходимо указать все mongos
yopp
yopp
Конфиг сервера клиентами не используются
Ilya
lastRefresh" : {$gt : ISODate("2019-11-20T21:00:00.000Z")}
двоеточие пропустил :)
yopp
yopp
Alexey
Да, для приложения
Кажется пока все понятно. Ох, ну и система у меня тут вырисовывается. Спасибо большое за помощь!
yopp
Вам точно шард нужен?
Josh
до тех пор пока все работает – нужен 🌚😅
Alexey
Вам точно шард нужен?
Мне ясно дали понять, что да, фирме для определенных задач нужен шард, каждый узел которого будет реплицироваться. При этом сервера конфигурации тоже должны быть реплицированы, а mongos должен крутиться на двух серверах из трех.
yopp
А какие это задачи?
Alexey
Те же, по которым я приходил сюда в прошлый раз - хранение zip архивов без сжатия :)
Тогда я сделал реплику на двух ухлах + арбитр. Но встал вопрос о горизонтальной масштабируемости, который я кстати тут с Вами обсуждал. Лучшее решение для этого - кластер
yopp
Вопрос только в том, нужен вам шард сейчас или нет
yopp
Шард это очень дорого
Alexey
Дорого?
yopp
По сравнению с репликой, разница до порядка :)
yopp
Потому что минимум 9 нод
yopp
В реальности 12
Alexey
Я закольцую на трех)
yopp
Это очень плохая идея
yopp
Вам не нужен шард в этом случае
Alexey
Почему? На первом сервер - первый узел шарды, первый узел реплики первого узла шарды, второй узел второго узла шарды, конфиг сервер, mongos. На втором - второй узел шарды, второй узел первого узла шарды, первый узел второго узла шарды, конфиг сервер, mongos. Третий сервер: арбитр для реплики первого узла шарды, арбитр для реплики второго узла шарды, конфиг сервер, mongos. Падает первый или второй сервер, так как все закольцовано и есть арбитры, происходят выборы, данные доступны.
yopp
Почему? На первом сервер - первый узел шарды, первый узел реплики первого узла шарды, второй узел второго узла шарды, конфиг сервер, mongos. На втором - второй узел шарды, второй узел первого узла шарды, первый узел второго узла шарды, конфиг сервер, mongos. Третий сервер: арбитр для реплики первого узла шарды, арбитр для реплики второго узла шарды, конфиг сервер, mongos. Падает первый или второй сервер, так как все закольцовано и есть арбитры, происходят выборы, данные доступны.
Потому что смысла в шарде абсолютно нет
Alexey
Отказоустойчивость и горизонтальная масштабируемость. У нас уже есть терабайты данных, готовые к загрузке и еще десятки терабайт на подходе
yopp
У вас нет масштабирования
yopp
Если у вас уже есть терабайты, то на трёх физических хостах вам будет ОЧЕНЬ ПЛОХО
yopp
в такой конфигурации
yopp
вместо того чтоб пытаться обмануть физику (не выйдет), не тратье денег на дорогое железо чтоб туда напихать нод. это неэффективная стратегия
возьмите много дешевого железа, не тратьесь на избыточность и резервирование на самих хостах, деплойте 12 нод
Dmitriy
ребят, а подскажите, в РФ есть какой-нибудь аналог атласа с бесплатным планом? хочу свой петпроект на монгу пересадить, но там перс. данные, поэтому сервера только на территории РФ
yopp
с бесплатным нет, с платным есть яндекс. там недорого
yopp
https://cloud.yandex.ru/services/managed-mongodb
yopp
yopp
запустили на прошлой неделе
Dmitriy
ага, спасибо
yopp
там broadwell прямо очень ок стоит
Null
Яндекс опубликовал записи митапа MongoDB и Облако, прошедшего 14 ноября в Москве:
Виктор Кесслер, старший архитектор MongoDB, о приемуществах MongoDB: https://www.youtube.com/watch?v=qsI44kQR-8I
Евгений Архипов, руководитель подразделения специальных баз данных в Я.Облаке, об управляемой MongoDB в Облаке: https://www.youtube.com/watch?v=Y9x66DDnhsU
Павел Перекалов, старший разработчик в Я.Облаке, о стратегиях резервного копирования: https://www.youtube.com/watch?v=UXvW-k3pGxo
Alexander
уже даже 4.2
давно я за монгой не следил
Josh
Anonymous
Ilya
Я написал find в котором указал
lastRefresh" : {$ne : ISODate("2019-11-20T21:00:00.000Z")}
Т.е. все значения НЕ равные этому.
но получается вывелись не только только значения у которых параметр не =, но так же и те, у которых такого параметра вообще нет,
Как правильно напиать, чтобы исключить их из выборки? Т.е. чтобы были только те у которых есть такой ключ но не с такии значением