Nick
как все поля схемы сделать обязательными сразу ?
Что мешает проставить флаги везде?
A
В докере запусти
🕊Emocean🕊
Всех приветствую, в бд есть column с массивом json [{"profile": {"id": "0aad2c85-be86-408f-b8cb-9ea486aa0e6f", "profile_name": "Kelly Price", "itsy_tag": "nlBTxMTLWawRtCvVQLozSike", "profile_type": "staff", "current_profile_pic": "profile_media/0aad2c85-be86-408f-b8cb-9ea486aa0e6f/0686f104-0cb4-4b2d-8b9e-8536d2256c70/original.jpeg", "current_profile_cover_pic": "/media/profile_media/default_covers/c99ba40c-2631-41b1-9e5e-b0c938401ddf/x1080.jpeg"}, "participant_status_type": {"id": new NumberInt("4"), "name": "video", "description": "Try ground material life sister door project. Pass again member sometimes.\nThan particularly difficult far painting citizen class face. Feeling nothing future produce."}}] как мне обновить поля которое находится во внутреннем json
🅰️nimeCoder
что, что простите? column?
Kvhqm
Любое поле что находится по ключу profile например
Ну, и потом примерно так выполняй запрос: indOneAndUpdate(docID, {$set: {field.$[elem].глубже.ещёглуже}, {arrayFilters: [{ "elem._id":fieldID]}})
🕊Emocean🕊
Если я хочу поменять все записи где есть это поле
🕊Emocean🕊
что, что простите? column?
Извиняюсь за терминологию, просто использую DataGrip для просмотра бд
Kvhqm
elem это если у тебя есть вложенный массив, и оно само итерирует в поиске "elem._id"
Богдан🇺🇦
Привет , подскажите пожалуйста команду чтобы експортнуть все колекции вместе в csv файлик из монго который в доккере
RapidCodeLab
Привет , подскажите пожалуйста команду чтобы експортнуть все колекции вместе в csv файлик из монго который в доккере
docker exec -i containername /usr/bin/mongodump --db dbname --out /dump (тут опции монгодампа которые нужны) docker cp containername:/dump localpath
Богдан🇺🇦
сохранило в bson
RapidCodeLab
(тут опции монгодампа которые нужны)
RapidCodeLab
возможно монгодамп заменить на монгоэкспорт, не помню. просто суть про докер показал
Dev
Всем привет, ребят подскажите пожалуйста возможно подтянуть например все понедельники только?
Dev
$dayOfWeek
Но dayofweek принимает date object, так же ?
Nick
Но dayofweek принимает date object, так же ?
да, поле с датой. И потом результат сравнивать с номером дня в $cond
Dev
А если сразу передать weekday типа 1, 2 ?
Nick
А если сразу передать weekday типа 1, 2 ?
с помощью $in думаю отработает
Sergey
Ребят, кто работал с монго в го, подскажите, пожалуйста. Понимаю, что не совсем по теме, но всё же Есть два запроса: 1) `{ "obj": { "$eq": { "test1": "test1", "test2": 2 } } }` или после преобразования в bson.M: map[$and:[map[$and:[map[obj:map[$eq:map[test1:test1 test2:2]]]]]]] 2)`{ "obj.test1": { "$eq": "test1" }, "obj.test2": { "$eq": 2 } }` или после преобразования в bson.M: map[$and:[map[$and:[map[obj:map[$eq:map[test1:test1 test2:2]]]]]]] Запросы делаю в через гошный драйвер (Find()) Проблема в том, что первый запрос выполняется через раз, то есть данные то приходят, то нет. Второй же запрос выполняется корректно всегда. Не понимаю, в чём может быть проблема. Может, с запросом что? Замечу, что если делать запрос напрямую в монге (например, из её терминала), то все два запроса - окей Никто с таким не сталкивался?
Nick
Ребят, кто работал с монго в го, подскажите, пожалуйста. Понимаю, что не совсем по теме, но всё же Есть два запроса: 1) `{ "obj": { "$eq": { "test1": "test1", "test2": 2 } } }` или после преобразования в bson.M: map[$and:[map[$and:[map[obj:map[$eq:map[test1:test1 test2:2]]]]]]] 2)`{ "obj.test1": { "$eq": "test1" }, "obj.test2": { "$eq": 2 } }` или после преобразования в bson.M: map[$and:[map[$and:[map[obj:map[$eq:map[test1:test1 test2:2]]]]]]] Запросы делаю в через гошный драйвер (Find()) Проблема в том, что первый запрос выполняется через раз, то есть данные то приходят, то нет. Второй же запрос выполняется корректно всегда. Не понимаю, в чём может быть проблема. Может, с запросом что? Замечу, что если делать запрос напрямую в монге (например, из её терминала), то все два запроса - окей Никто с таким не сталкивался?
В первом случае вы ищете полное совпадение объекта, т.е. чтобы у него было два указанных поля, с такими значениями и в таком порядке Во втором проверяете что значения полей равны указанным и неважно наличие других полей и их порядок в документе. Первый вариант практически не применяется в виду особенностей, а второй является общеиспользуемым (он же dot notation ) для поиска по вложенным полям
Даниил
Ребят, всем привет !)
Даниил
Кто может помочь с заданием
Даниил
, установить СУБД MongoDB 4.4 на 3 ВМ, организовать из них репликсет из арбитра и 2-х рабочих нод. Настроить авторизацию
Vyacheslav
https://www.mongodb.com/docs/manual/replication/
Oleg
В документации mongoose сказано, что в продакшене надо отключать авто создание индексов с помощью autoIndex: false. Вопрос: Эта опция отключает создание индексов указанных в схеме, и что, мне тогда самому придётся создавать указанные в схеме индексы?
Oleg
не поверите
просто не понятно, монга не глупая бд, разве если индекс уже создан, то не будет же она его пересоздавать, что плохого в лишнем запросе createIndexes во всех моих моделях? Ну ладно, раз так в документации рекомендуют
Daniil
Это совет от случая, когда случайно указали создавать новый индекс в огромной коллекции например
Nick
просто не понятно, монга не глупая бд, разве если индекс уже создан, то не будет же она его пересоздавать, что плохого в лишнем запросе createIndexes во всех моих моделях? Ну ладно, раз так в документации рекомендуют
предполагается, что пром база обслуживается админами и дба, которые самостоятельно занимаются такого рода операциями. Плюс эта опция предотвращает ошибки добавления нового индекса на большой БД, когда случайно при выкатке новой версии приклада у вас и база помирает от перегрузка и приклад не старутет до конца, пока индекс не достроится
Oleg
понятно, спасибо за ответы
Nick
понятно, спасибо за ответы
ну а на мелкой БД в пару гигов о такой настройке думать смысла нет, да и про индексы как правило тоже)
Admin
Как с получить статистику бд(колво элементов в каждой коллекции) с использованием mongoose
Admin
Почитать доку?
доке монгуса нет про это инфы, а в доке монго инфа только через метод монгош
Admin
https://www.mongodb.com/docs/manual/reference/operator/query/size/
кажется не лучший вариант перебирать всю коллекцию и подписаться на их изменения
Kvhqm
кажется не лучший вариант перебирать всю коллекцию и подписаться на их изменения
https://www.google.com/search?client=ms-android-samsung-ss&sca_esv=560909571&sxsrf=AB5stBjLxmuQMriDZyR5pg9-g979SpHaVA:1693291778589&q=how+to+get+mongodb+collection+size+using+mongoose&spell=1&sa=X&ved=2ahUKEwiNzti3o4GBAxUNGxAIHeVyA4IQBSgAegQIDBAB&biw=384&bih=728&dpr=2.81
yopp
Это не подходит нужен что то типо how to get mongodb all collections size using mongoose
https://mongoosejs.com/docs/api/model.html#Model.aggregate() + https://www.mongodb.com/docs/manual/reference/operator/aggregation/collStats/#mongodb-pipeline-pipe.-collStats вы получите документ с основными данными по коллекции, включая размер и количество документов
Admin
А для чего эта инфа вам, что вы с ней делаете? Суть задачи
Ну для вывода инфы, еще для пагинации в некоторых местах
Nick
Ну для вывода инфы, еще для пагинации в некоторых местах
Вам похоже нужно не стата, а просто количество записей в конкретной коллекции в зависимости от запроса?
Admin
Вам похоже нужно не стата, а просто количество записей в конкретной коллекции в зависимости от запроса?
нет, не совсем. можно и так конечно, но хочется что-то такое что бы сохранить на фронте и каждый раз не бегать за колво коллекции
Nick
нет, не совсем. можно и так конечно, но хочется что-то такое что бы сохранить на фронте и каждый раз не бегать за колво коллекции
Странное решение, тяжко будет реализвать. А вообще $facet запрос для подсчета количества и формирования выборки для страницы
Admin
Неужели нет способа просто получить стату по бд !? Эта настолько не нужная штука ?
Андрей
Я, конечно, извиняюсь, но нейронку пробовали спросить? Это ж задача начального уровня, с которой чатгопник справится без проблем по идее. На баше с приправкой жаба скриптом это делается минут за 15, если что. Nagios, Zabbix, Prometheus из коробки собирают подробную статистику по всем объектам, вынимайте потом оттуда себе на фронты/дашборды что-угодно.
Nick
Бук и прайс это коллекции ?
Коллекция здесь - Model
Андрей
Не спешите рекомендовать чтото пока не выясните что за проблема, особенно инструменты, которые еще сильнее могут запутать
Так в первом сообщении ведь "Как с получить статистику бд(колво элементов в каждой коллекции)"
Андрей
да спросил, я же писал выше что есть метод mongosh runCommand, чатгпт про это и пишет что это такой метод есть у бд пакета mongodb npm. но я достаю бд а там нет такого
Я к сожалению монгуз не знаю, но гопник выдал следующее: const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost:27017/your_database', { useNewUrlParser: true, useUnifiedTopology: true }); const db = mongoose.connection; db.on('error', console.error.bind(console, 'Connection error:')); db.once('open', async () => { const collections = await db.db.listCollections().toArray(); for (const collection of collections) { const collStats = await db.db.collection(collection.name).stats(); console.log(Collection ${collection.name} size: ${collStats.size}); } mongoose.connection.close(); });
Андрей
И предложение неизменное: js и баш регламент пошагово заберёт из каждой коллекции ту статистику и так структурированно вам разложит, как захотите 😏
Nick
Инфа про бд
Зачем вам инфа о бд, что вы с ней будете делать? И какая именно инфа
Admin
Зачем вам инфа о бд, что вы с ней будете делать? И какая именно инфа
выведу вот и все, вообще в чем смысл спросить зачем мне и что я с ним буду делать ? именно длина всех коллекций в бд
Nick
выведу вот и все, вообще в чем смысл спросить зачем мне и что я с ним буду делать ? именно длина всех коллекций в бд
смысл выяснить суть задачи, чтобы предложить решение. И под статой разные люди понимают разное. Люди которым нужны стат-метрики БД не используют монгусы, а сразу идут искать экспортеры для настройки мониторинга. А пользователи монгусов как правило максимум хотят сделать пагинацию. У вас же какойто непонятный с виду случай
Nick
Да
хех, интересный проект конечно) по задаче - любой из вариантов выше через кэш с ттл, если данные добавляются редко в коллекции. Иначе facet или доп запрос напрямую в коллекцию в обход монгус абстракции
Kvhqm
Да это просто эксперименты ) но мне кажется странным что в бд нет такого метода, щас спросил майэскюэлщика, сказал что там тоже нет
А на кой чорт он нужон? Что бы вывести на фронт что у тебя в бд "много коллекций"? Так рандомную цифру захурач и все ок будет :)
Admin
А на кой чорт он нужон? Что бы вывести на фронт что у тебя в бд "много коллекций"? Так рандомную цифру захурач и все ок будет :)
Ну это для админ панель типо, и то для себя) Вывести реальную цифру тоже не проблема, но у меня это пздц ресурсоемкий
Kvhqm
Ну это для админ панель типо, и то для себя) Вывести реальную цифру тоже не проблема, но у меня это пздц ресурсоемкий
Создай отдельную модель, прикрути каунт, проитерируй всю бд, и записуй ы дальнейшем всю нужную инфу