Nick
не должен, и возможно не придет, и возможно не отловится и возможно чтото поменяется в логике отлова в нижележащих либах а вы это не будете отслеживать - куча тонких моментов, хот ьи маловероятных котоыре могут выстрелить. Да даже банальное - "мы по другому кильнули процесс случайно" и никаких уведомлений уже не будет. Плюс ждать пока софт доставит все уведомления будет достаточно долго по времени и хрен знает как убедитсья что оно доставило тойже техподдержке, а не софт завис и его надо принудительно прибивать
Artem
выходит, из вариантов только делать отдельный программный "рубильник" который "подготовит все и всех к стопу" ?
Nick
или тех.работы
тех работы - вывешивается заглушка, туда направляется весь трафик, сервис обслуживается.
Обновление - тут зависит от того как запускается приклад, если это докер и иже с ними - просто обнова, если это старый мудреный софт со стартом в полчаса, то он настолько стар что там уже ест ьинстуркция как это делать)
Андрей
Это похоже на какую-то попытку создать автоматическую систему взаимодействия с клиентами из говна и палок. Для этих целей везде есть специально обученные люди, которые ставят сервисы на регламент, вследствие чего в приложениях вешаются баннеры о том, что сервис не работает и другой либо тот же специально обученный человек запускает, если необходимо, рассылку клиентам сообщений через установленный канал коммуникаций.
Андрей
Если б меня как клиента каждый раз "автомат" разных контор оповещал о том, что любая приложуха померла, я б застрелился 😬
Nick
выходит, из вариантов только делать отдельный программный "рубильник" который "подготовит все и всех к стопу" ?
в общем случае клиенты должны нормально отрабатывать полное пропадание сервиса изза любых проблем и это их задача. Вы со свое стороны можете просто описать что при таком ответе значит что мы обновляемся, а при таком что у нас тех работы и выставлять соответсвующие заглушки.
Оповещения же имеют смысл только в полностью контролируемом вами продукте, где вам очень важно добиваться милисекундных задержек на получение информации что вот эта нода сейчас уйдет в ребут и нужно чтото сделать чтобы весь сервис не помер - пример любой софт в кластерной реализации, та же монга с выборами мастер ноды. Но при этом она так же отработает и в случает непредвиденного краша, но с большей задержкой чем при контролирвоанной остановке
Artem
окей, я думаю, я вас понял)
спасибо
Alex
Всем привет. Коллеги, подскажите, как реализовать округление в агрегации в монге 4.0? $round там еще нет к сожалению
Alex
Vitalii
здравствуйте, помогите дополнить запрос:
[
{"$match":{"campaignId":"2"}},
{"$sort": {"nullFirstName": -1, "lowerFirstName": -1}},
{$project: {lowerCaseValue: 1, isNulled: 1}}, // добавил, из-за Sort exceeded memory limit ...
{"$facet":{
"count":[{"$count":"total"}],
"messages":[{"$skip":0},{"$limit":10}]
}
}
]
Вопрос, как сделать, что-б в facet попадали оригинальные документы?
Вариант с addField не предлагать, т.к. я не знаю какие будут поля (
Nick
здравствуйте, помогите дополнить запрос:
[
{"$match":{"campaignId":"2"}},
{"$sort": {"nullFirstName": -1, "lowerFirstName": -1}},
{$project: {lowerCaseValue: 1, isNulled: 1}}, // добавил, из-за Sort exceeded memory limit ...
{"$facet":{
"count":[{"$count":"total"}],
"messages":[{"$skip":0},{"$limit":10}]
}
}
]
Вопрос, как сделать, что-б в facet попадали оригинальные документы?
Вариант с addField не предлагать, т.к. я не знаю какие будут поля (
добавьте индекс
campaignId:1, nullFirstName: -1, lowerFirstName: -1 и уберите $project
Nick
Nick
Vitalii
Nick
Nick
Александр
Дорый день. У меня есть задачи посчитать количество новых клиентов у магазина за сегодня. Уникальный клиент, тот который не делал заказов ранее в магазине.
Пишу агрегацию для коллекции orders. Подскажите пожалуйста как в group сделать проверку есть ли другой заказ с таким id пользователя и если нет чтоб срабатывал sum?
Vitalii
Nick
Nick
Александр
Nick
Vitalii
почему?
Ну потому, что я не хочу насиловать диск сотнями мегабайт...
У меня сейчас 2 варика,
1-й — создавать отдельную базу для сортирвки,
2-й — возвращать только айдишки, и потом делать еще один запрос чисто по айдишкам...
Но я чувствую, что можно обойтись одним (
Nick
Nick
Nick
Vitalii
>ем данных мифически не исчезнет. Вы можете разве что через $lookup заново по id подтянуть доки, можете как раз сравнить что по скорости и нагрузке будет предпочтительнее по сравнению с флагом
оо вот походу то что надо )
Александр
Oleg
Всем привет. Подскажите пож-та, возможно, уже кто-нибудь сталкивался с подобной проблемой?
Пробую восстановить бэкап
mongorestore --uri="mongodb://dba:pass12345@mongodb-home-1:27017,mongodb-home-2:27017,mongodb-home-3:27017/?replicaSet=rs0&authSource=admin" --dir=dump
Получаю ошибку
Failed: config.tenantMigrationRecipients: error creating indexes for config.tenantMigrationRecipients: createIndex error: (Unauthorized) not authorized on config to execute command { createIndexes: "tenantMigrationRecipients", indexes: [ { key: { expireAt: 1 }, name: "TenantMigrationRecipientTTLIndex", expireAfterSeconds: 0, ns: "config.tenantMigrationRecipients" } ], ignoreUnknownIndexOptions: true, lsid: { id: UUID("898a807d-cfea-4abb-a306-cec4344dcb6e") }, $clusterTime: { clusterTime: Timestamp(1686759124, 574), signature: { hash: BinData(0, 697F8C78C826C815E068A8843213DCF7D5906EDA), keyId: 7244573263764914181 } }, $db: "config", $readPreference: { mode: "primary" } }
Иногда ошибка касается config.tenantMigrationDonors
Vyacheslav
Всем привет. Подскажите пож-та, возможно, уже кто-нибудь сталкивался с подобной проблемой?
Пробую восстановить бэкап
mongorestore --uri="mongodb://dba:pass12345@mongodb-home-1:27017,mongodb-home-2:27017,mongodb-home-3:27017/?replicaSet=rs0&authSource=admin" --dir=dump
Получаю ошибку
Failed: config.tenantMigrationRecipients: error creating indexes for config.tenantMigrationRecipients: createIndex error: (Unauthorized) not authorized on config to execute command { createIndexes: "tenantMigrationRecipients", indexes: [ { key: { expireAt: 1 }, name: "TenantMigrationRecipientTTLIndex", expireAfterSeconds: 0, ns: "config.tenantMigrationRecipients" } ], ignoreUnknownIndexOptions: true, lsid: { id: UUID("898a807d-cfea-4abb-a306-cec4344dcb6e") }, $clusterTime: { clusterTime: Timestamp(1686759124, 574), signature: { hash: BinData(0, 697F8C78C826C815E068A8843213DCF7D5906EDA), keyId: 7244573263764914181 } }, $db: "config", $readPreference: { mode: "primary" } }
Иногда ошибка касается config.tenantMigrationDonors
createIndex error: (Unauthorized) not authorized on config
Vyacheslav
Не хватает прав/авторизации
Oleg
Не хватает прав/авторизации
ну у меня dba имеет следующие роли
"roles": [
{
"role": "readWriteAnyDatabase",
"db": "admin"
},
{
"role": "clusterAdmin",
"db": "admin"
},
{
"role": "userAdminAnyDatabase",
"db": "admin"
}
]
Vyacheslav
Эт не ко мне, это к документации 😅
Nick
Всем привет. Подскажите пож-та, возможно, уже кто-нибудь сталкивался с подобной проблемой?
Пробую восстановить бэкап
mongorestore --uri="mongodb://dba:pass12345@mongodb-home-1:27017,mongodb-home-2:27017,mongodb-home-3:27017/?replicaSet=rs0&authSource=admin" --dir=dump
Получаю ошибку
Failed: config.tenantMigrationRecipients: error creating indexes for config.tenantMigrationRecipients: createIndex error: (Unauthorized) not authorized on config to execute command { createIndexes: "tenantMigrationRecipients", indexes: [ { key: { expireAt: 1 }, name: "TenantMigrationRecipientTTLIndex", expireAfterSeconds: 0, ns: "config.tenantMigrationRecipients" } ], ignoreUnknownIndexOptions: true, lsid: { id: UUID("898a807d-cfea-4abb-a306-cec4344dcb6e") }, $clusterTime: { clusterTime: Timestamp(1686759124, 574), signature: { hash: BinData(0, 697F8C78C826C815E068A8843213DCF7D5906EDA), keyId: 7244573263764914181 } }, $db: "config", $readPreference: { mode: "primary" } }
Иногда ошибка касается config.tenantMigrationDonors
не указан authenticationDatabase параметр
Oleg
всем спасибо, не хватало роли root
Влад
всем привет, ткните пожалуйста носом как пофиксить эту помойку с READ__ME_TO_RECOVER_YOUR_DATA
Влад
пиздец через brew ставил монгу
Mashxurbek
nickdd
Влад
вымогатели чтоль
да это хрень какая-то, у меня просто при ребуте мака полностью бд чистится и эта хрень ставится, при том что я ставил монгу через брю по гайдам из доки
Mashxurbek
По-моему у тебя в bindIp там был 0.0.0.0.
Mashxurbek
Mashxurbek
Не знаю монго это или кто-то но из-за отсутствия как минимум авторизации при подключении, такое случается
Mashxurbek
Короче тем данным кронты
Mashxurbek
Если не копаться очень глубоко
Андрей
Mashxurbek
Андрей
nickdd
Влад
неплохой инструмент что аж из доки как говно ставится
Mashxurbek
https://stackoverflow.com/questions/63873677/data-is-not-being-saved-in-mongdb
Mashxurbek
Андрей
Влад
да какую базу снесли
Влад
это по кд появляется
Влад
при ребуте
Влад
я с нуля поставил монгу по доке, это сразу же началось
Mashxurbek
Андрей
MongoDB автоматом чистится при даунтайме только с ин мемори энджайном.
Влад
настолько ахуенно чистится, что при удалении этой хрени READ__ME_TO_RECOVER_YOUR_DATA она появляется заново
Андрей
С нуля поставил по доке - это бины распаковал. Конфиг и лог надо смотреть.
Андрей
По этой фразе в гугле всё в случаях сноса баз.
Влад
Влад
это может как-то влиять?
Nick
это может как-то влиять?
как раз это и влияет, биндитесь на 0.0.0.0 и подключение к монге становится доступно всем кто может постучать на машну
Mashxurbek
Влад
да мне не нужно чтоб коннектились
Влад
локальная бд
Влад
ладно спс всем, ща поправлю