yopp
Иначе изменения которые произошли в коллекции пока она скачивалась выпадут из оплога и восстановить консистентное состояние не получится
yopp
Точно не помню, но по-моему после завершения синхронизации всех коллекций
yopp
С точки зрения корректности состояния разницы нет
yopp
Отмечу что там накатка оплога происходит в несколько фаз
Elinka22
Ещё остался вопрос про find. У нас просто был случай, в архитектуре PSA отвалилась нода и оплог уехал далеко. Пришлось делать initial sync. Уцелевшая PRIMARY была сильно нагружена и запуск репликации её сложил полностью. Количество коннектов стало в 8 раз больше. В логах часто проскакивали ошибки о том, что не удалось взять lock, отсюда у меня вопрос и возник, как работает репликация изнутри. Что бы потом, если потребуется, переделать архитектуру. Я правильно понимаю, что оно делает find на той ноде, откуда идёт синхронизацию, а на той, куда оно накатывается, insert?
yopp
Да, процесс примерно тот-же который при mongorestore
Elinka22
Лок срабатывает только на время выполнения запроса find? И в результат попадает вся коллекция? Типа как SELECT * from в СУБД?
yopp
Ещё остался вопрос про find. У нас просто был случай, в архитектуре PSA отвалилась нода и оплог уехал далеко. Пришлось делать initial sync. Уцелевшая PRIMARY была сильно нагружена и запуск репликации её сложил полностью. Количество коннектов стало в 8 раз больше. В логах часто проскакивали ошибки о том, что не удалось взять lock, отсюда у меня вопрос и возник, как работает репликация изнутри. Что бы потом, если потребуется, переделать архитектуру. Я правильно понимаю, что оно делает find на той ноде, откуда идёт синхронизацию, а на той, куда оно накатывается, insert?
Рекомендую почитать вот это: https://docs.mongodb.com/manual/faq/concurrency/
yopp
yopp
Т.е опыт блокировок в реляционных базах к монге вообще не применим
yopp
В монге нет концепции user defined locks
yopp
Единственное что может сделать пользователь, это включить глобальный write lock, для целей обслуживания
Elinka22
Ну да, это что бы, например, сделать снепшот БД…
Elinka22
Уф, дочитаю ту документацию и приду ещё. Спасибо!
Roman
Почему у меня find
nextFetch : { $lt : new Date()}
не возвращает что было в прошлом ?
Типо с датами что то не так ?
Если нада в прошлом она же меньше правда ?
yopp
Roman
я просто делаю find а в базе уже другая дата
Roman
Почему такое может быть может кто подсказать я просто не понимаю что прыисходит
Roman
yopp
Да, верно
yopp
lutik
Подскажите пожалуйста почему может не рабоать сортировка по дате
lutik
lutik
хочу отсортировать arr по полю date
Anonymous
Что?
yopp
$sort сортирует документы, а не элементы в массиве внутри документа. К сожалению единственный способ сделать это внутри агрегации это $unwind + $sort + $group, так что дешевле сортировать на клиенте
lutik
lutik
Кейс просто такой, что такой массив может вырасти до 1000 записей, сортировать на беке будет больно
lutik
Тянуть всю коллекцию и сортировать, ох ох ох
yopp
можно попробовать https://docs.mongodb.com/v5.0/reference/operator/aggregation/function/#example-1--usage-example
yopp
1000 элементов в массиве сортировать совсем не дорого :)
lutik
А таскать коллекцию ?
lutik
Ну с Монги на бек
yopp
а зачем вам её всю таскать?
lutik
Вот сейчас у меня 58 тыс жсонов
lutik
В каждом по 2-6 таких массивов
lutik
Каждый массив вырастет в среднем до 600
lutik
Получится, что 58 тыс коллекций, где в каждой по 600+- массивов объектов
lutik
Это ерунда или нет)))? Я просто не знаю
lutik
То есть 10 тыщ чел одновременно получают свои данные, мне придётся для 10 тыщ чел вытянуть по 600 записей для каждого
Данила
Ребят можете скинуть статьи или видосы про миграции mongodb
Данила
Хочу в данных убрать не использующийся атрибут
Алекс
ребят, такой вопрос, а что enum нету в монге?
мне waterline пишет
The attribute `profileType` on the `accounts` model contains invalid properties. The property `enum` isn't a recognized property.
Google
Всем привет можете помочь у меня не получается выбрать дату который указанно / тоист я должен получить из базы скажем с 2021-06-01 до 2021-07-30
MongoDB - Get Data from startDate to endDate
Google
но неправильно работает
Roman
но неправильно работает
что-то с типами возможно не так, что если писать что-то вроде new ISODate("2012-01-12T20:15:31Z") ?
Google
Google
выводит все данные или нечего
Google
есть кто разбирается в Mongodb ? у меня в базе дате формат 2021-06-17T09:06:43.228Z такой
Google
поиск по датам не получается скажем с 2021-06-01 до 2021-07-30
Roman
Привет, а можно искать по ключу Map greater/less than ?
Google
Roman
Google
Google
что делать теперь ?
Roman
а что это там за пробелы ?
Google
Google
вот при эдит такой пробел поевляется
Roman
что делать теперь ?
сори давно работал с монгой, может там надо какую-то схему для данных добавить..
Google
не ужели нету способ ?
Google
я в инете проверил все не нашёл
Roman
Кака можно сделать find и сразу update ?
Вижу есть findOneAndUpdate но нету findAndUpdate?
Данила
Ребят привет
Данила
Как миграции писать ?
Google
e у меня payment_date куда прописать ?
Roman
Google
db.collection.update(
{},
[{ $set: { payment_date: { $toDate: "$payment_date" } } }],
{ multi: true }
)
Google
?
Roman
Google
сейчас
Roman
ну только свою коллекцию подставь