yopp
Используйте его сразу в $project
Гена
сейчас попробую
Гена
спасибо
Алмаз
Добрый день! Нужен ваш совет. Для внутренних нужд начал реализовать свой GUI, по аналогии rockmongo, но на базе nodejs. Пока тесты провожу список базы данных + список коллекций (electron). Почему изобретаю свой велосипед: ⁃ для облегчения разработки хочу воспользоваться watch над коллекций или конкретного документа, ⁃ сохранение query как шаблон для последующего использования (сохранения даты и комментария), ⁃ применение шаблонов а-ля {{ mustache }} для отображения некоторых видов коллекций для удобного переваривания большой информации. Вопрос, как лучше разрабатывать: 1. Серверную часть отдельно, клиента отдельно. Плюс: Через url можно зайти и подключится. Минус: нужно устанавливать на сервер какие то библиотеки и настраивать. 2. Создать все на базе еlectron. Плюс: Нужен только доступ по ssh Минус: Нужно каждый раз запускать. И еще может не надо все это делать, уже есть готовое решение?
yopp
Если вы не знаете как будете на этом зарабатывать, то смысла в таком продукте нет
Dmitriy
Добрый день! Нужен ваш совет. Для внутренних нужд начал реализовать свой GUI, по аналогии rockmongo, но на базе nodejs. Пока тесты провожу список базы данных + список коллекций (electron). Почему изобретаю свой велосипед: ⁃ для облегчения разработки хочу воспользоваться watch над коллекций или конкретного документа, ⁃ сохранение query как шаблон для последующего использования (сохранения даты и комментария), ⁃ применение шаблонов а-ля {{ mustache }} для отображения некоторых видов коллекций для удобного переваривания большой информации. Вопрос, как лучше разрабатывать: 1. Серверную часть отдельно, клиента отдельно. Плюс: Через url можно зайти и подключится. Минус: нужно устанавливать на сервер какие то библиотеки и настраивать. 2. Создать все на базе еlectron. Плюс: Нужен только доступ по ssh Минус: Нужно каждый раз запускать. И еще может не надо все это делать, уже есть готовое решение?
я хз, зачем вы это делаете, watch над коллекцией (по поводу документа не смотрел) есть в nosql booster (я думаю что в studio3t тоже есть). т.е. если разработка ваша кастомная стоит дешевле 200$, но сильно сомнительно
yopp
Есть бесплатный компас, вопрос чем ваше решение лучше?
Алмаз
Если вы не знаете как будете на этом зарабатывать, то смысла в таком продукте нет
Зарабатывать на этом особо не планирую, нужен инструмент для разработки. Но если будет какая то польза другим возможно выложит на общее пользование.
yopp
Это будет безумно дорогой инструмент для разработки
yopp
В лучшем случае это около года разработки
Алмаз
я хз, зачем вы это делаете, watch над коллекцией (по поводу документа не смотрел) есть в nosql booster (я думаю что в studio3t тоже есть). т.е. если разработка ваша кастомная стоит дешевле 200$, но сильно сомнительно
Кроме rockmongo особо другими не пользовался. Разрабатываем учетную систему, в Системе есть так называемый список реестров(коллекций), туда имеет доступ только администратор, где есть просмотрщик документов, редактирование и удаление. Переход на связующие документы, итд. Даже выгрузка в виде эксель. Просмотр файлов. Хотел вывести все это в отдельную систему, не должна система техподдержки идти с боевой.
Алмаз
я хз, зачем вы это делаете, watch над коллекцией (по поводу документа не смотрел) есть в nosql booster (я думаю что в studio3t тоже есть). т.е. если разработка ваша кастомная стоит дешевле 200$, но сильно сомнительно
Честно в данный момент watch не пользуемся, из за того, что система на стороне сервера отслеживает любые изменения, то через socket.io передает всем подключенным клиентам комманду на обновление данного документа или реестра(коллекции).
Roman
Всем привет! Подскажите, как бы вы решали задачу? Необходимо выбирать из 1ккк записей 1000 рандомных, при этом чтобы для каждой новой выборки эти записи не пересекались. Видимо необходимо заюзать db.collection.aggregate([{ $sample: { size: 1000 } }]);, но не знаю как сделать так, чтобы выборки не пересекались. Думал, возможно стоит добавить дополнительное поле в документ (выбрано / не выбрано), и использовать $match.
madspectator
Можно распределить числа из диапазана 1..1e9 каждой записи в случайном порядке. Затем взять записи с номерами 1..1000, затем 1001..2000 и т.д.
Roman
А сама задача в чем заключается?
Хочу понять, где подобная выборка реализуется проще и где работает быстрее, в MongoDB или MySQL.
Roman
а зачем? какую именно задачу вы решаете?
В двух словах не объяснить) У меня есть БД, которая хранит записи и в которую будут добавляться записи. Также есть некий механизм, которому необходимы группы записей, пока по 1000. При добавлении новой записи, необходимо формировать группы из имеющихся записей в БД по 1000 в одной группе. Зачем конкретно мне такое нужно и где я буду такое применять, сказать не могу.
Dmitry
Жаль, походу самое интересное осталось за кадром)
Похоже на подгрузку сообщений continuous scroll как в скайп или вотсапп. На SQL такое нет смысла делать. В NoSQL это будет работать мгновенно. Как запись (пишем элемент в массив в документа) так и вывод. При скроле просто берем следующий а в его массиве соответсвенно следующий рэндж 1000
Murena
Всем привет подскажите можно ли в монге сделать так - есть документ - в нем есть поле которое является массивом обектов мне нужно добавлять в этот массив новые елементы - при этом не выкачивая весь этот массив с монги для этого действия. Можно ли как то передать команду типа - push to array определенный елемент и все. Чтоб не вытягивать весь документ с бд ?
Murena
просто сейчас я делаю .find - нахожу нужную запись в бд - добавляю в поле документа (которое является массивом нужный елемент) и делаю .save()
Murena
а хочется упустить этап выкачки с бд всего документа - а делать определенную логику на стороне бд
Murena
чтоб не ганять данные туда - сюда
yopp
И если нужно игнорировать дубликаты https://docs.mongodb.com/manual/reference/operator/update/addToSet/
Murena
спасибо 🙏
Vened
Зачем? Вы уперлись в сеть или проц?
А на этом можно упереться в проц? Это ж не вычисления
Nick
Можно на сериализации и валидации по схеме, монгус мне помнится грешил этим
Murena
Зачем? Вы уперлись в сеть или проц?
Можно сказать и так, мне нужно добавить например в 5000 документов по 10 новых елементов в массив но каждый документ уже весит по 5-10 мегабайт. Получается накладно выкачивать с бд каждый документ полностью чтоб просто добавить елемент в массив
Murena
Поэтому искал способ чтоб без выкачки с бд просто добавить елемент в массив
Nick
Можно сказать и так, мне нужно добавить например в 5000 документов по 10 новых елементов в массив но каждый документ уже весит по 5-10 мегабайт. Получается накладно выкачивать с бд каждый документ полностью чтоб просто добавить елемент в массив
это хороший аргумент. как и сказали выше через пуш, только обратите внимание что если вдруг операция прервется и вы повторно ее прогоните то могут появитьсядубли
yopp
Or transactions)
Назар
MongoNetworkError: failed to connect to server [cluster0-shard-00-00-wl88u.mongodb.net:27017] on first connect [MongoNetworkError: connection 5 to cluster0-shard-00-00-wl88u.mongodb.net:27017 closed
Назар
как пофиксить?
yopp
как пофиксить?
https://docs.atlas.mongodb.com/security-whitelist/
Vadim
Подскажите, пожалуйста, как произвести поиск по регулярному выражению, если у меня в документе бинарные данные такого вида: {Payload: BinData(0,"W3sia2V5IjoiXHUwMDAwV1NcdTAwMDAxNDQwLTEwMDAxNC0xOV)} Попробовал в mongo-driver (Golang) сделать так: filterOpts := bson.E{Key:"Payload", Value: bson.D{ {"$regex", primitive.Regex{Pattern:"1440-100006-19", Options:"i"}}, }} collection.Find(ctx, filterOpts) ... но так ничего не находит :( возможно ли в принципе производить поиск по шаблону в бинарных данных в Mongo?
yopp
А что у вас в бинарных данных хранится?
yopp
Насколько я помню монга использует для них простой текстовый алгоритм и как минимум поиск по префиксу и другие простые операции были возможны
yopp
А зачем binary?
yopp
Но вы попробуйте своё регулярное выражение на вашем json проверить
Vadim
А зачем binary?
специфика, так удобно в сервисе, которые кладет документы и достает из монги. десериализация в другом месте
Oleksandr
Здравствуйте, Подскажите, пожалуйста, есть уже установленная MongoDB 4.0.X, как лучше сделать апгрейд до 4.2? Это Standalone сервер сейчас. ———- БД маленькие, я понимаю что лучше сделать экспорт и импорт чтобы все было ОК. ———- Вопрос в том, для обновления MongoDB старую нужно полностью удалить (в офф. документации есть пример), или можно добавить репу mongodb4.2 и через apt установить посерх текущей 4.0?
Oleksandr
Спасибо! 😊
Vadim
Но вы попробуйте своё регулярное выражение на вашем json проверить
попробовал класть обычный строковый JSON - работает. ну, значит там действительно честный кусок бинарных данных был, регулярки на таком не работают
Павел 💻
Всем привет, подскажите пожалуйста , как в mongoose модно задать параметр where аналогичный sql запросу?
Павел 💻
Т.е. мне нужно вытащить все уроки с категорией Рисование
Ki
Ребят всем привет. Извините за максимальный метавопрос одскажите где подсмотреть работу с Mongodb Может быть у аиды на канали есть ? задача форум сделать, как записи делать ума не приложу не работал раньше с Бд А сроки горят 1 день остался. Где посмотреть на руском. С подключением к react и express
madspectator
Вы не разу не делали веб-приложения, работающие с БД и хотите сделат за 1 день? Какой смысл? Всё равно получится кривой медленный продукт с дырами в безопасности.
Ki
php 😅
madspectator
Доработаю потом. А заказчик дыр не увидит
Не делайте так. Откажитесь от заказа и скажите, что у вас нет достаточной экспертизы.
Vova
Доработаю потом. А заказчик дыр не увидит
А потом люди удивляются, почему всё через задницу работает. А вот он, ответ)
Ki
🌝
Ki
так уже 15 минут , это норма?
Ki
второй раз так уже. не знаете почему?
Назар
Вопрос как сохранить в бд тест? У теста есть вопрос и варианты ответа, где один правильный. Как пометить правильный вариант ответа?
Vova
Вопрос как сохранить в бд тест? У теста есть вопрос и варианты ответа, где один правильный. Как пометить правильный вариант ответа?
Я думаю что одна коллекция должна содержать вопросы и список ответов, а вторая отдельная коллекция – айди юзера и выбранный ответ на конкретный айди вопроса
Назар
Я думаю что одна коллекция должна содержать вопросы и список ответов, а вторая отдельная коллекция – айди юзера и выбранный ответ на конкретный айди вопроса
да не в том вопрос. Вот коллекция содержит список вопросов. У каждого вопроса есть массив ответов. Как понять какой ответ верный?
Vova
да не в том вопрос. Вот коллекция содержит список вопросов. У каждого вопроса есть массив ответов. Как понять какой ответ верный?
Либо внутри массива в каком-то ответе поставить is_valid: true, Либо вне массива, отдельным полем, сделать valid_answer: index массива или код ответа
Назар
Либо внутри массива в каком-то ответе поставить is_valid: true, Либо вне массива, отдельным полем, сделать valid_answer: index массива или код ответа
ну это я понимаю. Думал спросить как лучше сделать, правильней. Как потом проверять ответы.
Vova
Зависит от логики кода, если нужно по номеру вопроса получить верный ответ то лучше вне массива, чтобы не тянуть его. Если же ты в любом случае тянешь массив всех ответов с бд, то можно и внутри массива
JASWGO
Всем привет. omitempty это как опционал?
Dmitriy
Всем привет. omitempty это как опционал?
вы по всей видимости про таги в golang, если я прав, то вы чатом ошиблись)
Anonymous
ребят подскажите. как в aggregate вернуть не массив а объект, у меня просто идет выборка по uid, возвращается объект, но он в массиве. А как массив хотя бы убрать?
Aleksandr
const result = aggResult[0]
Leonid
Привет. Кто-нибудь в курсе как в c# mongodb driver реализовать полиморфное поле в базе ( тип ObjectId, string, int) в свойство DTO типа string ?
Vova
Алишер Абдуллаев
ребята , в $match aggregation работает $gte & lte для проверки таймстэмпа ?