Nick
Всем салют ребят. Кто ниб может подсказать как cascade delete организовать в mongodb?
вручную в коде с использованием транзакций. На уровне БД упорото можно через changestream, но это не будет одномоментно и с задержкой
Khikmat
Кто ниб знает есть ли процедура получения данных сортировкой с сохранением сортировки в бд?
Khikmat
👍
Aqendo
Здравствуйте, кто-нибудь знает как сейчас актуально можно запустить монгодб на андроид устройстве(локально)? В плей маркете есть приложение Dory/MongoDB, оно запускается но подсоединиться я сколько не пытался не смог(может неправильно пытаюсь?), в термуксе репозиторий с устаревшими зависимостями, не запускается mongo/mongod, как можно ещё это сделать или старое возродить ?
Evgeniy
Всем привет. Можно ли как-то уточнить, почему mongodb перегружает память при поиске?
Dmitriy
Добрый день. Хочу безопасно искать подстроки в полях где могут быть управляющие символы регулярок, слеши и прочие наборы символов. Это здорово усложняет экранирование. Да и пока экранирую символы это по прежнему остается регуляркой которая все равно может последовательностью символов обойти экранирование или сложной регуляркой повесить систему. Поэтому нужен путь чтобы в поиск подстрок принималось выражение и игнорировались управляющие конструкции. Т.е. нужен тупо текстовый поиск подстроки как есть. Хотя есть мысль что в принципе делаю какой то костыльный велосипед
Evgeniy
видимо нужны данные для выполнения запроса
Т.е. если данных нет то она перегружает память? Я просто получил тг бота который ищет по одному из двух критериев по дб, и по первому ищется нормально, а по второму виснет и перегружает. Данные вроде есть для обоих критериев
Nick
Добрый день. Хочу безопасно искать подстроки в полях где могут быть управляющие символы регулярок, слеши и прочие наборы символов. Это здорово усложняет экранирование. Да и пока экранирую символы это по прежнему остается регуляркой которая все равно может последовательностью символов обойти экранирование или сложной регуляркой повесить систему. Поэтому нужен путь чтобы в поиск подстрок принималось выражение и игнорировались управляющие конструкции. Т.е. нужен тупо текстовый поиск подстроки как есть. Хотя есть мысль что в принципе делаю какой то костыльный велосипед
не ясна суть, проблема на уровне валидации юзероского ввода и это далеко от БД. А там по факту вы должны описать допустимые выражения. Если чтото может трактоваться по разному - запрещать. В самом упоротом случае пишете сво разборщик со своим языком, после парсинга которого собираете запрос после валидации
Dmitriy
нет, только регулярки
Ясно. Спасибо за ответы. Пошел пилить свой велосипед валидации :)
Evgeniy
что значит "перегружает"?
Точно не помню что пишется, что то про overload и killed process бота
Nick
Точно не помню что пишется, что то про overload и killed process бота
начните с выяснения того что же всетаки происходит
Никита
Привет! Подскажите, пробую в шардирование, делаю по гайду, в результате получаю такую картину: collections: { 'test.test_collection': { shardKey: { number: 1 }, unique: false, balancing: true, chunkMetadata: [ { shard: 'mongors1', nChunks: 1 } ], chunks: [ { min: { number: MinKey() }, max: { number: MaxKey() }, 'on shard': 'mongors1', 'last modified': Timestamp({ t: 1, i: 0 }) } ], tags: [] } } Так и должен быть один чанк?
Никита
А я правильно понял, что шардинг и реплики не помогут мне ускорить запросы на чтение, если коллекции будут по ярду документов?
Никита
При условии, что количество обращений к базе не будет высоким, по крайней мере на первых порах
Nick
А я правильно понял, что шардинг и реплики не помогут мне ускорить запросы на чтение, если коллекции будут по ярду документов?
если запросы пойдут на разные шарды - то поможет, а на чтение пользу можно получить и на просто доп репликах без шардирования
Cloud
"{""error_message"":""failed to connect to server *** on first connect [MongoNetworkError: Client network socket disconnected before secure TLS connection was established]""}" в чем может быть проблема?
AБB
Добрый день. Я новенький в mongo - подскажите пож-ста! Есть 2 коллекции: users и records У record есть поле user_id. Как мне найти всех юзеров у которых нет ни одного records?
AБB
Смотри lookup в агрегациях
уже дошёл до мысли с $match + { $exists: true, $type: 'array', $eq: [] } }
Nick
для поулчения year и all вам нужно использовать редьюс (https://www.mongodb.com/docs/manual/reference/operator/aggregation/reduce/) по массиву с указанием логики подсчета. Для фильтрации в условии по году можно использовать $year (https://www.mongodb.com/docs/manual/reference/operator/aggregation/year/)
Sanya
Всем привет Столкнулся с некой проблемой. Есть аппка, в которой используется кастомная функция для авторизации Сижу на ВПН, подключен к России Получаю в консоли ошибку при логине: Login failed: cannot parse response По логам в MongoDB Realm никаких ошибок нет Подключился к Украине и меня авторизировало. MongoDB вводили какие - то санкции на пользователей из России?
Sanya
конечно
Сарказм или серьезно? Я читал, что разработчики не смогут юзать MongoDB. Про то, что соединения из России заблочат - не видел
Cloud
Может плз кто-нить объяснить, как работает в драйвере ноды MongoClient.connect() Точнее что будет если его вызывать несколько раз? Работает ли это по аналогии с пг, где pool.connect - возаращет коннекш или создает новый если свободных нету
Sanya
коннекты работают, веб морда атласа отключена, но под впн норм
Не совсем понимаю Авторизация идет через кастомную функцию в реалме. По логам в самом реалме я вижу, что она успешно завершается и начинает идти синк (загружает данные) При этом в консоле IDE мне выводит ошибку Login failed: cannot parse response Получается, что ответ идет от атласа и приложение его просто не получает, из - за этого и ошибка?
pdvl
Сарказм или серьезно? Я читал, что разработчики не смогут юзать MongoDB. Про то, что соединения из России заблочат - не видел
Все мы знаем NoSQL базу Mongo DB, ну так вот эта компания (Mongo Atlas) заявила, что удалит все данные со своих серверов от РФ и РБ граждан и просит их сделать в срочном порядке бэкапы. Сроки не уточняются. Пост взят из другого канала*
COHuK
Все привет. Подскажите новичку, у меня есть 2 сущности - вакансии и отклики по ним. У вакансии есть поле "количество откликов". Есть ли удобный способ связать это значение с количеством откликов?
COHuK
Вот так наверное понятнее будет
COHuK
Или я в корне неправильно поступил что сделал 2 сущности и надо было applicants делать массивом объектов?
Sanya
Все мы знаем NoSQL базу Mongo DB, ну так вот эта компания (Mongo Atlas) заявила, что удалит все данные со своих серверов от РФ и РБ граждан и просит их сделать в срочном порядке бэкапы. Сроки не уточняются. Пост взят из другого канала*
Ну так удалит базу для РФ жителей, это я знаю. Если у тебя была БД создана и платёжка РФ, то удалят, как я понимаю Но у меня стоит вопрос в том, почему кастомная функция авторизации отпала (только в РФ)
Максим
Коллеги, доброго времени суток. Подскажите пожалуйста, кто нибудь решал задачу разворачивания реплики монго через ansible?
Evgeniy
Всем привет. Помогите разобраться с ситуацией - есть тг бот который обращается к БД. Расположен на сервере. Всё работало хорошо до того момента, пока сервер не был приостановлен за неуплату. После этого при обращении к бд бот зависает, либо намертво либо очень тормозит. дампнул БД, добавил новые записи - всё хорошо. Восстановил старые записи - опять лагает. В чём может быть причина?
Evgeniy
при этом возникает это
Evgeniy
записей ~90 штук всего
Anna Agabekyan
Добрый день! где можно найти примеры json (желательно осмысленные) для работы с агрегациями? или пришлите плиз документы или ссылки)
Anna Agabekyan
Jsonplaceholder ?
да, спасибо, знаю, но скудно)
Anna Agabekyan
хочется типо такого примера, как на видео https://www.youtube.com/watch?v=aAmS5oFeEQ0&t=1003s
Andrey
коллеги, подскажите возможную причину: - монга 4.2.1, работала долгое время без сбоев - недели 3-4 как база стала останавливаться - последние строчки лога контейнера 2022-04-16T17:19:55.667+0000 I TXN [conn1958] transaction parameters:{ lsid: { id: UUID("9ee10c23-ef91-47a9-b103-cd0598a3e5e9"), uid: BinData(0, 830872FC3F605AFFB6F640ED87DB86D55DCD03BE1E29155D54CDA151B743588A) }, txnNumber: 283, autocommit: false, readConcern: { level: "snapshot" } }, readTimestamp:Timestamp(0, 0), keysExamined:64 docsExamined:50 terminationCause:committed timeActiveMicros:3923 timeInactiveMicros:103679 numYields:0 locks:{ ReplicationStateTransition: { acquireCount: { w: 2 } }, Global: { acquireCount: { w: 1 } }, Database: { acquireCount: { w: 1 } }, Collection: { acquireCount: { w: 3 } }, Mutex: { acquireCount: { r: 3 } } } storage:{} wasPrepared:0, 107ms 2022-04-16T17:20:01.393+0000 I CONTROL [signalProcessingThread] got signal 15 (Terminated), will terminate after current cmd ends 2022-04-16T17:20:01.394+0000 I REPL [RstlKillOpThread] Starting to kill user operations 2022-04-16T17:20:01.394+0000 I REPL [RstlKillOpThread] Stopped killing user operations 2022-04-16T17:20:01.396+0000 I NETWORK [conn1955] end connection 10.255.0.235:33220 (13 connections now open) 2022-04-16T17:20:11.403+0000 I REPL [RstlKillOpThread] Starting to kill user operations 2022-04-16T17:20:11.404+0000 I REPL [RstlKillOpThread] Stopped killing user operations 2022-04-16T17:20:11.405+0000 I STORAGE [signalProcessingThread] Failed to stepDown in non-command initiated shutdown path ExceededTimeLimit: No electable secondaries caught up as of 2022-04-16T17:20:11.404+0000. Please use the replSetStepDown command with the argument {force: true} to force node to step down. 2022-04-16T17:20:11.419+0000 I NETWORK [signalProcessingThread] shutdown: going to close listening sockets... 2022-04-16T17:20:11.419+0000 I NETWORK [signalProcessingThread] removing socket file: /tmp/mongodb-27017.sock 2022-04-16T17:20:11.420+0000 I - [signalProcessingThread] Stopping further Flow Control ticket acquisitions. 2022-04-16T17:20:11.420+0000 I REPL [signalProcessingThread] shutting down replication subsystems 2022-04-16T17:20:11.420+0000 I REPL [signalProcessingThread] Stopping replication reporter thread 2022-04-16T17:20:11.420+0000 I REPL [signalProcessingThread] Stopping replication fetcher thread 2022-04-16T17:20:11.420+0000 I REPL [signalProcessingThread] Stopping replication applier thread 2022-04-16T17:20:11.421+0000 I REPL [rsSync-0] Finished oplog application
gleb
Добрый, может кто-то знает как можно реализовать что-то на подобии autocomplete + fuzzy text search как в mongo atlas, только для n вложенных полей? Пытался сделать хотя бы просто для values.name в mapppings - не работает [ { value: 1, name: 'one', values: [ { value: 43, name: 'first nested', values: [...] }, { value: 278, name: 'second nested', values: [...] } ] }, { value: 57, name: 'some text', values: [...] } ]
QIT
На питоне либо голанге нужно реализовать историю изменений значений в документах по коллекции. Нашел на руби и монгус (mongoid history) модули, но не нашел что-то подобное для питона и голанга. Можете подсказать?
Ольга
Добрый день. Подскажите пожалуйста как сгруппировать данные по месяцам и получить такого плана объекты { month: "2022.03", incomes: 500, // посчитать все isIncome = true expenses: 25, // посчитать все isIncome = false }
Игорь
Как получить те у которых user_id отсутствует? Хочу получать количество тех у которых отсутствует user_id
Игорь
Nick
Как получить те у которых user_id отсутствует? Хочу получать количество тех у которых отсутствует user_id
Здесь нужен $reduce где выстраивается сумма плюс один если ($cond) поле существует ($exists) и ноль иначе
Ольга
спасибо
Игорь
выводит 0
Nick
Почему такое не сработало?
судя по тому что у вас было на скрине gds - это массив, по массиву надо применить $reduce в который уже засовывать $sum. Услвоие у вас сейчас некорректное, т.к. надо {$exists: ["$gds.....", false]}
Игорь
судя по тому что у вас было на скрине gds - это массив, по массиву надо применить $reduce в который уже засовывать $sum. Услвоие у вас сейчас некорректное, т.к. надо {$exists: ["$gds.....", false]}
Еще одна попытка.... {$exists: ["$gds_items", false]} нельзя пихать ж в условие if $cond Этот код считает почему-то все что есть, на условие ему поход плевать
Игорь
Оно либо String Либо его вообще нет. Нужно ж получить те у которых его нет
Игорь
Как проверить на существование?
Nick
Как проверить на существование?
это оказало не тривиально, внутри агрегации $exists не работает., но поулчилось так db.getCollection('t_reduce').aggregate([ {$addFields: { no_user_id_count: { $reduce: { input: "$gds", initialValue: 0, in: { $add : ["$$value", {$cond:[ {$eq: ["$$this.user_id", undefined]}, 1, 0 ]}] } }} }} ])
Игорь
Спасибо
Nick
Спасибо
вот так поулчается
Nick
похорошему надо еще првоерять на равенство null, но если уверены что именно нуловых значений у поля не будет, то можно забить
gleb
можно как-то для $search compound в filter фильтровать какое-то поле по вхождению в список ObjectId?