yopp
вы можете посмотреть на распредленеие чанков между нодами. если там поровну +/- 2 чанка, то балансировки не будет
yopp
когда на одном из шародов станет больше чем на 2 чанка, тогда балансировщик потащит чанки на шарды с меньшим количеством чанков
yopp
балансировщик в монге дубовый что пипец
Маfеt
да, я уже понял
Маfеt
как раз мой случай, чанки почти поровну
yopp
4.0.6 (Feb 7) ◦ 3.6.10 (Jan 22)
• Код запросов: https://play.db-ai.co
• Docs: https://docs.mongodb.com/manual/
• Learn MongoDB: https://university.mongodb.com
Stable: 4.0.6 (https://docs.mongodb.com/manual/release-notes/4.0/#feb-7-2019)
Bugfix: 3.6.10 (https://docs.mongodb.com/manual/release-notes/3.6/#jan-22-2019)
Legacy: 3.4.19 (https://docs.mongodb.com/manual/release-notes/3.4/#jan-28-2019, EOL June ’19)
End of life: 3.2.21 (Sep ’18), 3.0.15 (Feb ’18)
Kir
спасиб
Yuliy
Всем привет, коллеги, а вы как бекапаете инфу на авсе которая больше 200гб? черезе mongodump ? или тут уже снепшоты решают?
yopp
Зависит от частоты резервного копирования, но да, снепшоты будут более эффективны
Yuliy
ага, понял) спасибо. А то смотрю дамп уже не справляется и мне почему-то в s3 с архивом бекапа всякую ересь по 500б закидывает
Anonymous
Как с помощью NodeJS залить данные в Атлас? Очень много искал, но ничего не нашел
Nick
никакой магии, пишите код
Ivan
в каком смысле залить?
Ivan
const MongoClient = require('mongodb').MongoClient;
(async () => {
const client = await MongoClient.connect(
'mongodb://127.0.0.1/test',
{
promiseLibrary: global.Promise,
poolSize: 10,
useNewUrlParser: true,
},
);
await client.db().collection('ttt').insertOne({
created_at: new Date(),
});
process.exit(0);
})();
Anonymous
Anonymous
Ivan
https://mongodb.github.io/node-mongodb-native/api-generated/mongoclient.html
Anonymous
Благодарю
Ivan
Ivan
в этом услучае придется делать mongodump/restore и если индексы "весят" оч много то и индексы нужно будет применить уже на существующей/новой БД (и не забываем об { background: true } для PROD)
Ivan
на сколько я понял у человека AWS и тот же AWS не позволяет сделать snapshot c encrypted volume
yopp
Это и есть неверный выбор инструмента.
yopp
Дампы для больших объемов это сложно и может быть ненадежно
yopp
Вместо дампа, во-первых, всегда можно копировать dbPath
yopp
Во-вторых, шифрование и/или снепшоты можно обеспечить другими средства
yopp
Хотя шифрование в облаках это бутафория
yopp
Не делать дамп
Ivan
а что делать тогда?
yopp
Но подавляющем числе случаев шифрование включают для галочки, потому что «так безопаснее». Никакой модели угроз нет, не говоря уже о протоколах
Ivan
то есть что нужно было и доказать что при такой практически простой операциии как мигрировании данных есть куча подводных камней и это сделать не так то просто
yopp
Я не знаю какие у вас проблемы с копированием файлов хранилища
yopp
Снепшот это всё тоже самое, с той разницой что вместо полной копии, копируются только изменившиеся блоки
Ivan
вот тут я не понял
Ivan
допустим есть 1TB данных и начинается снепшот (допустим это занимает час-два) за это время появились еще 1M документов
Ivan
что дальше?
yopp
дальше вы идёте и пересматриваете свою стратегию резервного копирования
yopp
более того, даже с дампом, если вы oplog не пишете, у вас тоже не point in time снепшот
Sergei
Привет. Полагаю что сортировку я делаю неправильно потому что список приходит не сортированный. Как делать правильно?
yopp
если сертификация нормальная, то там уже базовая модель угроз и какие-то протоколы есть
Ivan
yopp
есть
yopp
он называется «подбирать инструмент под задачу».
у монги достаточно много инструментов
Ivan
например?
yopp
https://docs.mongodb.com/manual/core/backups/
yopp
yopp
вы можете закинуть пример с данными на play.db-ai.co?
yopp
например?
«классика» — hidden member. отключаем его от кластера и делаем с ним что хотим. на нём будет point in time снимок состояния, который не будет зависеть от текущих изменений в кластере
yopp
public link справа наверху
Sergei
yopp
а, нажмите на create & run
Sergei
yopp
а, данные снизу, пайплайн сверху
yopp
ага, всё-же вы хотите отфильтровать массив по значениеям
Sergei
https://play.db-ai.co/m/XGPwhwgjhgAB8h97
Вот так даже. У меня вложенный массив где есть поле city.name я хочу получить их список и этот список отсортировать по алфавиту. Список я получаю, а вот сортировки нет.
Nick
вам нужен $unwind после проекции
Nick
потом уже сортировка
yopp
Nick
если я правильно понял что нужно получить отсортирвоанный список городов
Sergei
Спасибо изучу
yopp
жалко что в ace editor нельзя добавить нормальную документацию к сниппетам :(
Sergei
тупанул я )
yopp
там порядок -1 :)
yopp
https://play.db-ai.co/m/XGP0hZ_RigABpeZu
Nick
с двумя unwind вместо projection+unwind
https://play.db-ai.co/m/XGPxyQgjhgAB8h-S
Nick
хотя такой вариант наверное попрожорливее будет
Nick
поравил ссыль
Sergei
Спасибо, пойду изучать попутно мануалы )
Anonymous
всем привет. Подскажите, рассматривал запущенные на сервере процессы и обнаружил 6 инстансов mongod запущенных от mongodb юзера - это так надо и он сам их включит/выключит, или это я случайно пооткрывал и не закрыл?
yopp
yopp
если это не треды (которые менеджеры процессов их показывют как отельные строки), то это вероятно вами запущенные другие копии