Stepan
Вопрос наверное в том, какое количество ты удаляешь. Монга крайне скрипучая на удаление. Если у тебя счет на сотни тысяч или миллионы записей на удаление, то оптимальней сделать копию коллекции с нужными данными, старую дропнуть и новую переименовать.
✙ Nikita
ну если не ждать await то будет такое что клиенту сообщишь что запись уже удалена с бд, а по фатку еще нет, хотя конечно там разница в несколько миллисекунд, скорее всего не будет влиять, разве что к этому документу одновременно будут тысячи запросов
Stepan
Погугли как сделать копию из запроса. Есть вполне подробные туториалы
✙ Nikita
наоборот мне кажется лучше дождатся
✙ Nikita
soft-delete здесь будет эффективнее?
✙ Nikita
типа монга же вроде быстра на запись
✙ Nikita
а хотя это не запись буквально
Stepan
soft-delete здесь будет эффективнее?
Такая стратегия не высвободит дисковое пространство. Миллионы записей жрут нормально так памяти
✙ Nikita
а-ля tombstone
Stepan
имею ввиду потом в фоне удалять помеченные записи
Проблема в самом удалении. Если у тебя еще индексов куча и ты будешь удалять по 100к примеру, то все равно БД может подлагивать
Stepan
Я во всяком случае с таким неприятным эффектом сталкивался
Stepan
А сколько в общем размер коллекции и по сколько планируешь удалять за раз? Если циферки сравнительно малые, то оптимизацией нет особого смысла заморачиваться
Stepan
Если по 5 записей, то точно нет смысла, что-то шаманить. Я бы не стал
Polina
Привет! Посоветовали к вам обратиться. https://docs.google.com/document/d/12JsDYc-L4qEy5Ld0pnnR_kRwAmbWVOan3qAqqTjVFHQ/edit?fbclid=IwAR2QbTuUcRC3WhX3shFY9DaEiNfzI6-atFPOK4I9o7iKOEM_Cb_C1mhjEQQ
Anton
Promise.all тогда уж
wertaer
привет народ
wertaer
тут проблемка мб глупая, не знаю
wertaer
wertaer
почему-то не сетится значение
wertaer
хотя поле с объектом существует
wertaer
запрос асинхронный если што
wertaer
ладно
wertaer
хуита какая-то была
wertaer
вопрос закрыт
A
всем привет, кто-то знает ресурсы где почитать про проектирование бд в mongo ? хотелось бы разобрать типовые кейсы, как принято разделять сущности и т.д.
Антон
https://stackoverflow.com/a/35847568 там в комментах к ответу пишут, что если одна из балк операцией провалилась, то и остальные тоже ничего не запишут. это правда? "By default if a write fails during the bulk operation then no more data will be written. If you want MongoDB to attempt the remaining writes then use this: collection.bulkWrite(write, new BulkWriteOptions().ordered(false));"
Lev
Как заставить явовый клиент монги записать на диск принудительно?
Roman
Ребят, подскажите. Вот так ищу всех пользователей, у которых в массиве settings есть объект с заданным ключом/значением: const users = Meteor.users .find({ settings: { $elemMatch: { key: 'letPeopleSearchMyEmail' } }}); А как найти всех пользователей, у которых в массиве отсутствует объект с таким ключом/значением?
✙ Nikita
$ne/$not? а еще если можно пример документа
Roman
Вот документ, который нужно найти, у него в массиве settings нет объекта с key: 'letPeopleSearchMyEmail'
Roman
$ne/$not? а еще если можно пример документа
Разобрался, спасибо за помощь
Lev
Почему чтения 10тыс записей по одной последовательно и параллельно имеют примерно одно и то же время?
Yaroslav
В обоих случаях нужно прочитать один и тот же объем данных с диска. Либо монга не читает паралельно с диска, либо паралельное чтение с диска не дает ускорения.
Lev
А с чего она не читает параллельно?
Mika
Ребята, доброго вечера. Может кто-то сталкивался с подключением aws Interface Endpoint к MongoDB Atlas через Private Endpoint. Собственно, не хочет коннектиться, зараза, хотя монга endpoint status показывает available, то есть связь между монгой и aws есть. Если коннектиться к кластеру монги чисто по IP Whitelist, то всё проходит на ура. Что не так? Куда копать? Может галочку какую забыл поставить?
Антон
А может кто подсказать - если идет коннект к кластеру, 3 ноды, то важен ли порядок перечисления серверов? Оно переберет слева-направо или как то умнее?
yacha
Ребят, помогите пожалуйста, почему у меня mongoshell пишет что updateMany не функция? cmd - db.stats.updateMany({}, {'$rename': {'mirrors.NLD': 'mirrors.NL'}})
Nick
Ребят, помогите пожалуйста, почему у меня mongoshell пишет что updateMany не функция? cmd - db.stats.updateMany({}, {'$rename': {'mirrors.NLD': 'mirrors.NL'}})
такое может быть если stats не определен, точно есть такая коллекция в той бд к которой подключились? Попробуйте чекнуть show collections
Google
Всем привет в Mongodb как сделать так чтобы дубликатов не создовался при ( db.products.save ) у меня при один create и дёт 3 дубликат - Пробовал поставить в Model upsert: true не помогло можете помочь ?
Google
Google
Bogdan
В модели поставить unique: true; для поля, по которому не должно быть дубликатов
Google
не помогает
Google
Anonymous
а разве не в индексе это нужно? Что-то вроде ProductsSchema.index({account: 1, unique: true})
Bogdan
не помогает
Пересоздайте коллекцию
Google
Пересоздайте коллекцию
да сделал перезагрузку
Google
сработало спасибо
Антон
я правильно понимаю, что под "The operation is not a multi-update." имеется ввиду, что не работает для bulk операций? https://jira.mongodb.org/browse/SERVER-14322
Антон
Можно это где-то из другого источника достать? Мне выдаёт access denied. Нужна именно эта версия https://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-4.4.1.zip
Кылыч
всем привет! подскажите плиз стоит ли создавать индекс для поля который будет запрашиваться по регекс запросу? регекс будет sensitive и c префиксом
Кылыч
если с префиксом то да
Обычный индекс, <field>: 1/0?
Nick
да
Кылыч
да
{ $regex: "^\/api\/v1\/contacts\/", $options: "m" } - вот такой запрос почему то не использует индекс. есть идеи?
Кылыч
Спасибо. Попробую
Кылыч
https://pastebin.pl/view/b70c31f3
как я понял индекс не юзается(
✙ Nikita
Да, он там есть. > show collections; > users stats
stats это же встроенная функция)
✙ Nikita
Которая показывает статистику по бд
yacha
А чо мне делать тогда?
✙ Nikita
Переименуй коллекцию наверное
✙ Nikita
mystats/statistics
✙ Nikita
Или что то в этом роде
yacha
может можно както по другому составить запрос? Типа db["stats"].updateMany