yopp
$and [$ne Date, $exists: true], но это не очень удачный выбор
yopp
если у вас есть диапазон дат, которым вы хотите ограничится, то $gt/$lt(e) более удачная стратегия
yopp
ну или в сочетании с $gt/$lte
Ilya
если у вас есть диапазон дат, которым вы хотите ограничится, то $gt/$lt(e) более удачная стратегия
Как раз диапазона то и нет, так как все очень неоднозначно.
Чложно понять, что верно, а что нет.
Пробовал с сочетании с $gt/$lte - но очень странные результаты.
И я решил предположить, что значение ISODate("2019-11-20T21:00:00.000Z") верно. И мне нужно все записи кроме таких.
Но как писал выше, я получаю еще и заптст в котороых таких полей вообще нет.
Попробовал
lastRefresh" : {$and [$ne : ISODate("2019-11-20T21:00:00.000Z"), $exists : true]}
вообще ошибку выдает...
Alexey
Еще вопрос: при шардировании, чтобы включить контроль доступа, пользователей где создавать - на сервере конфигурации или на узлах кластера?
yopp
и там и там
yopp
точнее так, внутри шарда, после подключения через mongos для cluster level
yopp
и на каждом репликасете для локального администрирования
yopp
т.е. туда надо на сам репликасет идти прямо, мимо mongos
Alexey
Не очень понял, к сожалению((
В конфиг реплике создать пользователей с ролью clusterAdmin, внутри реплик с данными создать пользователя для локального администрирования, а на mongos что?
yopp
в шарде есть три механизма аутентификации
основной, для клиентов монги, данные о пользователях хранятся в CSRS
внутренний, для связи между участниками кластера, который настраивается в каждом участнике кластера
shard-local, для обслуживания каждого конкртено шарда, данные хранятся только в этом конкретном шарде
Alexey
Я планировал использовать keyfile
yopp
вы не поняли
yopp
это все три механизма работают _одновременно_
yopp
keyfile это один из механизмов внутренней аутентификации
Alexey
Каждый контроллирует свои каналы связи. Понял
yopp
т.е. для того чтоб нормально задеплоить шард, вам надо настроить все три уровня
yopp
shard-local адская головная боль
yopp
которая множится с ростом числа шардов
yopp
x509 делает эту боль невыносимой
Alexey
А если я сделаю только первые два?
yopp
не выйдет
yopp
иначе у вас администрирование шарда будет доступно кому угодно :)
yopp
вы этого не хотите
yopp
я так и не понял за что эта боль и почему нельзя было сделать централизованное управление через mongos
yopp
так чтоб можно было shard-local рулить не через прямое соединение с каждым шардом
yopp
но так было всегда и чот пока не меняется
yopp
аутентификация в монге это адочек
yopp
вот я забыл поныть про это Виктору(
Alexey
Но ведь если я создам пользователя admin в бд admin к реплике или узлу нельзя будет подключиться без аутентификации
yopp
ну вот вы и настроили третий уровень
yopp
а теперь повторите это на каждом шарде
yopp
надо добавить монитроинг? повторите на каждом шарде
Alexey
С одинаковыми паролями я полагаю?
yopp
уволился сотрудник, надо ротировать пароли? повторите на каждом шарде
Alexey
Ахах, мдауж
yopp
пришёл сотрудник, надо дать ограниченный доступ? повторите на каждом шарде)
Alexey
а там еще и создание пользователя с десятками скобочек)
Alexey
ммм, удобства
Alexey
Хотя робо решает
yopp
ну это меньшая из проблем, это всё равно в скрипты заворачивать
Alexey
Ну, у нас приложение будет ходить в монгу, так что пользователей не много - чтение, запись и админ
yopp
но это очень хреновый подход, потому что очень много двигающихся частей и легко где-то пропустить что-то важное
yopp
это всё касается обслуживания кластера
yopp
а не клиентов
yopp
клиенты это просто и легко через mongos
Alexey
Так наоборот - набор пользователей не меняется, а значит добавлять узлы проще. Даже скрипт можно написать, если заморочиться
yopp
не бывает так, чтоб не менялся
yopp
yopp
yopp
базово, у вас на всех шардах по хорошему должны быть разные признаки для аутентификации. потому что password reuse в кластере это всё равно password reuse
Alexey
Про уволился - мейби. Но достаточно сменить пароль. Пользователи не привязаны к людям, они привязаны к ролям
yopp
ну вот сменить пароль это N раз сменить пароль :)
yopp
я не устаю повторять: шардинг это очень дорого
Alexey
Да, это проблема. Может SSH однажды поможет нам ее решить
yopp
не поможет
yopp
поможет только LDAP, но он только в enterprise версии
yopp
и то, для LDAP всё равно нужны роли, на каждый DN, а список ролей в shard-local всё равно управляется локально на каждом шарде (facepalm)
yopp
но это уже СИЛЬНО проще
yopp
но стоит тыщу евро в месяц за ноду 🤷♂️
Alexey
Капец
Alexey
При использовании ключа —fork можно задать имя сервиса?
yopp
нет
Alexey
А как запустить тогда несколько сервисов?)
yopp
что вы имеете ввиду под сервисами?
Alexey
deamon
Alexey
линуксовая служба
yopp
это к вашей системе сервисов вопрос, не к монге
yopp
но вообще лучше не запускать, как я уже говорил
yopp
это фатальная ошибка
yopp
две монге на одном хосте, без виртуализации с четко обозначеными квотами на ресурсы — к бессоным ночам
yopp
как и любые другие две базы данных
Alexey
А в чем проблема? Они разные dbpath используют
yopp
потому что следующие вопросы будут «почему крешится процесс», «от чего у нас встаёт всё колом», «почему запросы адски тормозят» :)
yopp
ответ на который будет: разнесите монги или в разные виртуалки с квотами или на разные сервера
yopp
ту топологию которую вы описали, особенно на озвученных объёмах, в продакшен я настоятельно рекомендю не деплоить
yopp
практически гарантированно это выстрел себе даже не в ногу, а в голову
Josh
до тех пор пока все работает – нужен 🌚😅
Alexey
Alexey
Но вот моё руководство, пока все раком не встанет, Вам не поверит, потому что Вы - человек из интернета