Josh
я определяю свой id: Number
id "зарезервировано", лучше переименуй
Александр
Привет, зачем нужен монго если есть в Postgres тип json и bson?)
Во-первых он jsonb, и это не то же самое что bson. Во-вторых шардирование из коробки. Очень круто когда оно есть, и в любой непонятной ситуации, админы могут закидать железом проблемы с производительностью или нехваткой места. Без привлечения разработчиков. Постгрес тоже в эту сторону движется, но через сторонние дополнения, которые не прошли такую же обкатку как монга
Oleg
Подскажите, плз, как запросить у сервера монги в каком режиме он работает (standalone, replicaset и т.д.)? Есть код, который рассчитан на реплика-сет и создаёт транзакции. У пользователей Standalone он будет сыпаться, хочу костыль написать, но не понимаю каким запросом проверить тип сервера.
El Pinguino
а какое количество списков?
несколько тысяц будет в год
Anton
Можете пожалуйста привести юзкейсы когда стоит использовать транзакции монги
Александр
Можете пожалуйста привести юзкейсы когда стоит использовать транзакции монги
любая задача где нужно провести изменение сразу над несколькими документами, и одно без другого не имеет смысла. Классический пример - перевод денег. Юзер 1 переводит 100р юзеру 2, значит меняем баланс юзера 1, меняем баланс юзера 2, и делаем об этом запись в логе транзакций. Если на любом из этапов что-то пошло не так, то всё отменяется.
Max
Привет! подскажите тулу для рисования / проектирования схемы коллекций MongoDB
Dezmunt
Как можно при updateOne в масиве использовать и $pull и $addToSet?
Nick
Как можно при updateOne в масиве использовать и $pull и $addToSet?
Над одним и тем же массивом нельзя - ограничения движка запросов монги
Dezmunt
Над одним и тем же массивом нельзя - ограничения движка запросов монги
А как юудет эффективно? В гугле про bulk что то находил. Или просто два запроса подряд сделать?
Nick
А как юудет эффективно? В гугле про bulk что то находил. Или просто два запроса подряд сделать?
балк он про то когда у вас однотипные запросы тысячами генерятся на основе батчей. В обычной жизни от балка только проблемы, т.к. нельзя нормально контролировать ход выполнения конкретного запроса в этой массе
Dezmunt
Окай
Nick
а, тут же еще подвезли агрегации в апдейты в новых версиях, надо будет их использовать
Nick
чет совсем позабыл
Nick
Окай
https://docs.mongodb.com/manual/tutorial/update-documents-with-aggregation-pipeline/
Nick
это если у вас монга 4.2+ соответственно там делаете два стейджа один с пулом второй с аддТуСет
Антон
А есть какой то готовый хостинг монги в РФ? Чтоб поднимался кластер из 3 инстансов. Типа атласа, но географически ближе. Нашел у мейл, но там 1 инстанс без реплики стоит 1400р)
Александр
а сколько вы хотите чтобы оно стоило?
Антон
https://cloud.yandex.ru/services/managed-mongodb сам не пробовал, но есть
3 минимальный инстанса стоят 15к. да ну нафиг))
Антон
а таких https://www.m-clusters.com/ знает кто то? но это не рф конечно
yopp
Как можно при updateOne в масиве использовать и $pull и $addToSet?
https://docs.mongodb.com/manual/tutorial/update-documents-with-aggregation-pipeline/
Гена
всем привет подскажите на сколько стоит своих денег интерпрайз версия монги? никгде не могу найти живые мнения по нему
Гена
там основное это поддержка
ну то есть если вопрос в резервном копировании то решение от перконы в целом ок - https://www.percona.com/doc/percona-backup-mongodb/index.html
yopp
ну и ops manager конечно
Гена
ну опс менеджер как мониторинг может только привлечь Развертывание монги через него не особо интересует
Кто шарит в MariaDB?
Kenan
Кто шарит в MariaDB?
думаю самое место это спрашивать
Мне скинули эту группу 😂
Дайте другую, где можно узнать
yopp
@dba_ru
Антон
подскажите пожалуйста как сделать $or правильно? мне надо выбрать записи либо у которых нет поля messages, либо у которых в этом поле (это поле - массив) последний элемент не равен какому то значению
Антон
что то не получается совместить $eq $slice $exists
Антон
или это через $elemMatch как то можно? только как сравнить именно последний элемент массива
Alexey
Как упростить? { $and: [ { tags: "ssl" }, { tags: "security" } ] } -> { tags: { $all: [ "ssl" , "security" ] } } { $and: [ { tags.name: "a" }, { tags.name: "b" } ] } -> ?
Dezmunt
это если у вас монга 4.2+ соответственно там делаете два стейджа один с пулом второй с аддТуСет
то есть через project пропускаем по конвееру? addToSet в агрегациях есть, но pull нет. Через фильтр?
Nick
то есть через project пропускаем по конвееру? addToSet в агрегациях есть, но pull нет. Через фильтр?
да, получается конвеер из двух стейджей project, первый с filter для удаления, второй уже простой addToSet
Alexey
Не сработает? 'tags.name': { $all: [.....]}
Да, спасибо, так и сделал
yopp
[1,3,2] U [2] -> [1,3,2]
Dezmunt
Ну это ладно, но вообще печально что агрегации так работают, даже тот же push работает через группы
yopp
Вас похожие названия запутали
yopp
$push в AF это аккумулятор, а не операция над массивом
yopp
Это механизм той самой агрегации данных, когда мы из большого числа документов делаем меньшее число документов
yopp
Грубо говоря только язык условий совпадает между $match и query выражений в find/findAndModify
yopp
Всё остальное в AF имеет собственный смысл, который иногда пересекается с языком трансформаций из findAndModify
Viktar
aggregation framework ?
Denis
А есть какой то готовый хостинг монги в РФ? Чтоб поднимался кластер из 3 инстансов. Типа атласа, но географически ближе. Нашел у мейл, но там 1 инстанс без реплики стоит 1400р)
А почему не взять 3 впс в любом ру облаке и поднять реплика сет самому? Просто как 2 пальца, заодно и сэкономишь прилично Конечно желательно у того же провайдера где у тебя бэк
Дара
всем привет У меня есть коллекция с 160м документами. И мне надо посчитать количество документов по определенным фильтрам. Но этот процесс занимает так много времени около 10 минут. Как можно оптимизировать?
Viktor
Подскажите как _id я могу использовать только hexadecimal в objectId?
Pan
как я lookupом могу вытянуть продукты ?
Pan
Kenan
не строкой
Pan
это json, они в ObjectId
Дара
Как часто?
Это все зависитт от конечного пользователя
Pan
вот
yopp
Это все зависитт от конечного пользователя
В таком случае по этим фильтрам необходимо построить индексы
Дара
В таком случае по этим фильтрам необходимо построить индексы
Я сделал, но один индекс вызвает проблемы. Не могу построить индекс для ординарного поля и встроенного поля в одном индексе. Когда делаю запрос в таком ввиде {$and: [ {t: {$gte:"2020-09-07T00:00:00", $lte: "2020-09014T23:59:59" }}, {n: {$in:[1006]}}, {"d.r": {$eq:"non-staff"}} ]} не видно индекса, то есть он не видит созданный мной индекс. Вот скрин моих созданных индексов
Дара
Меня смущает размер ваших индексов
Собираюсь удалить не нужные
Дара
Меня смущает размер ваших индексов
Я в mongoDB новичок, а сколько индексов должно быть?
Viktor
Ребят подскажите , как можно реализовать вставку в монгу более эфективно. Мне нужна вставка только если нет документа. Пробовал вытягивать по полу id (не _id) и если null то вставлять. Пробовал через upsert , тоесть апдейтил если есть и вставлял если нет. Так вот с увеличением числа документов в коллекции запись становится всё дольше и дольше . Так как мне нужно положить 5 миллионов записей , производительность вставки всё падает и падает. В первые 5 минут успивает код вставить 60 000 , во вторые 26 000 , и так всё меньше и меньше . Как то можно в монге реализовать без такого падения производительности