Art
есть GridFS, но это решение, только если у вас нет никаких требований по скорости работы
Да хотелось бы побыстрей. Я читал но нихрена не понял про этот грид. Он где вообще расположен то?
Nick
это абстракция, набор правил разбиения файла на части, сохранения в виде документа, и про то как потом обратно склеить это в исходный файл
Nick
должно быть реализовано на уровне драйвера
Art
а вообще это просто коллекция
Ясно, спасибо🤝🤝. Сохраню просто в firebase database и ссылочку😁
Viktar
Хранить файлы в базе плохая идея.
Viktar
Причем в любой базе
Viktar
В базах хранят ссылки на файлы
☮️ Alex
0_o И как реализовать распределенное и масштабируемое хранилище файлов при таком раскладе?
Viktar
Например храните файлы на S3
Viktar
ftp. Файловая система. Вариантов много
Кря
не понятна сама суть проекта и т.д. поэтому вырванные вопросы проекта тут ничего не решат
Виктор
Парни привет. Вчера и третьего дня все работало, а сегодня null возвращает из базы (Хотя такой пользователь есть) Что может быть?
Виктор
Парни привет. Вчера и третьего дня все работало, а сегодня null возвращает из базы (Хотя такой пользователь есть) Что может быть?
Не актуально. Ничего не сделал, менял-менял варианты... написал старый и все заработало 🤷
Joseph
Можно ли как то исхитриться и посмотреть всю mongoose scheme как mixed ?
Joseph
Или без вариантов , придется зависти 1 поля и уже его поменять как mixed ( так 100 будет работать , но не очень удобно)
Andry
Всем трям
Andry
подскажите пожалуйста
Andry
db.getCollection("Order").find({LoyalityCardId : {$regex: "^85$"}).count()
Andry
LoyalityCardId индексное поле - но все равно падает в таймаут - почему так? в чем проблема?
Nick
LoyalityCardId индексное поле - но все равно падает в таймаут - почему так? в чем проблема?
Посмотрите что там монга готовит из этого запроса и какой план выбирает https://docs.mongodb.com/manual/reference/method/cursor.explain/
Nick
И вопрос у вас обычный или текстовый индекс на поле?
Nikita
может кто поможет с подключением базы к node.js вроде взял ссылку mongodb+srv://user:password@cluster0.rckwa.mongodb.net/<dbname>?retryWrites=true&w=majority" но ничего не происходит
Andry
admin базу для авторизации пропиши
Nikita
admin базу для авторизации пропиши
я вроде прописал mongodb+srv://pole1:pole1@cluster0.rckwa.mongodb.net/poledb?retryWrites=true&w=majority"
Andry
DataConnectionString: mongodb://iauser:superpassword@localhost/MarkHub12123/?authSource=admin
Andry
Прописал бы - работало бы что логично
Anonymous
всем привет пытаюсь запускать mongod --config /usr/local/etc/mongod.conf или mongod --dbpath=/data вылезает ошибка, что делать?
Bogdan
Привет, есть толковые гайды по подключению монги через сокеты и есть ли в этом смысл?
Yaroslav
Привет, есть толковые гайды по подключению монги через сокеты и есть ли в этом смысл?
А в чем конкретно состоит задача, у монги свой протокол потклбчения, сокеты - это другой
Yaroslav
Ты через сокет хочешь передавать данные из бд? Что то наподобие чата?
Mike
доброго времени суток, коллеги
Mike
создаю массив объектов, но монга почему то помещает каждый объект в дополнительный массив
Mike
Mike
Mike
Mike
в чем может быть ошибка? спасибо
Anonymous
Там же прям написано в тексте ошибки
вроде разобрался, спасибо)
Bogdan
Ты через сокет хочешь передавать данные из бд? Что то наподобие чата?
Может прирост скорости в операциях удастся получить?
Yaroslav
Может прирост скорости в операциях удастся получить?
Не думаю, прирост в скорости выполнения операции тебе дадут быстрее индексы и правильная архитектура базы данных, используй explain для анализа запросов, испооьзуй как можно меньше lookup операций, если есть необходимость, то используй составной индекс, зачастую aggregation framework показывает лучшие скорости, чем обычный find, обязательно чаще используй pipeline для отображения только нужных результатов
Yaroslav
Если ты хочешь что-то наподобие Realtime BD то советую смотреть в сторону firebase
Yaroslav
Спасибо, есть смысл сохранять результаты aggregation во временных коллекциях и выдавать их при запросе или лучше улучшать pipeline для агрегаций?
Есть смысл сохранять результат aggregation в каком нибудь key-value хранилище, это гораздо быстрее будет, чем держать в другой коллекции, плюс если улучшить pipeline то запрос будет содержать меньший объем данных, это дополнительная экономия при передаче информации по протоколам
Yaroslav
Я использую так - у меня есть бэкэнд, он на nodejs, я кэширую запрос и от бд и от контроллера (в контроллере у меня преобразуется данные в response по стандарту json-api), если использовать без кэширования запросов к бд - то ответ по маршруту будет 400мс, а вместе с кэшированием запросов бд - 14мс, разница по моему очевидна, единственное нужно написать функции для чистки кэша - если данные обновлены, но тут особо труда нет, я в ключах кэша использую префиксы и легко очищаю нужный сегмент
Yaroslav
В случае с сокетом можно использовать аналогичный подход - только сокету нужно будет отсылать команду на обновление данных у клиента
Егор
Привет. Подскажите. В чём проблема. Хочу удалить поле из всех доков. Делаю через драйвер питона: x = db['status'].update_many({}, {'$unset': {'classes.solved_sub_real': '', 'classes.amounts_sub_real': ''}}) print(x)
Егор
Не удаляет
Denis 災 nobody
а бывало у кого, что по rs.status() при коннекте по всем нодам - всё ок, а если на каждую отдельно подключиться то часть битая?
Denis 災 nobody
и это чревато ошибками записи в кластер
Mikle
Есть кто сталкивался с проблемой с подключением к MongoBD через moongose. " Could not connect to any servers in your MongoDB Atlas cluster". white листы естественно выставлены, и открывал для всех. Локально запускаю сервак- могу подключится, запускаю на сервере - не могу
Mikle
Это было бы слишком просто
Mikle
Я прописал ip сервера и открывал для всех
no
Или пробелы в начале или в конце строки
Ilya
Пытаюсь подключится к кластеру в Atlas, с помощью Robo3T 1.3. Пользователь добавлен, white list настроен для любого адреса. При попытке подключение ошибка (на картинке). Помогите понять, что я забыл настроить/включить, спасибо.
Vitaliy
Определяюсь с БД для чат бота который будет парсить инфу с сайтов досок-объявлений. Человек настраивает у чатбота подписки на ключевые слова и когда выходит объявление с этим ключом - человек получает сообщение от чат-бота. Доступ к функционалу по подписке. По БД - смотрю на МонгоДБ, но чёт мне кажется, что с ростом пользователей +- 10000 человек будут очень большие списки подписок и гонять их будет тормознуто... Ещё смотрю на Postgresql.. но не будет ли это очень избыточным решением?
Егор
Ориентироваться на 10000+- человек очень опрометчиво, если у Вас уже нет этой аудитории
Vitaliy
Кажется, что на этапе мвп вам нужно ориентировать исключительно на Ваши личные умения. Умеете в sql — postgres. Умеете в монго — берите монго. Наверное, начинать чуть проще с монги
Дело в том, что я на пороге изучения бд. ) И мне сейчас важно определиться с правильностью выбора. Так как у меня нет опыта работы ни с монго, ни с постгрес, то мне одинаково интересно будет изучить любую. Главное, чтобы не пришлось спустя какое-то время мигрировать на другую бд из-за неправильного выбора сейчас.
Nick
Дело в том, что я на пороге изучения бд. ) И мне сейчас важно определиться с правильностью выбора. Так как у меня нет опыта работы ни с монго, ни с постгрес, то мне одинаково интересно будет изучить любую. Главное, чтобы не пришлось спустя какое-то время мигрировать на другую бд из-за неправильного выбора сейчас.
выбирайте любую, без опыта вы не в состоянии самостоятельно сделать "правильный" выбор, тем более на этапе мвп. Можете уже сейчас закладывать время на миграцию на "более удачное" решение, как в части БД так и архитектуры вцелом гдето на через полгода после запуска проекта в бой
Егор
Правильность выбора часто обусловлена опытом работы с той или иной технологией и пониманием её ограничений
S
Доброго времени суток, подскажите, ...find({name:/T^/i}) - здесь я нахожу все name начинающиеся на букву т, а как мне выполнить запрос в которм я хочу найти name заканчивающиеса на букву т?
Ostap
https://regex101.com/. Нвкидай труда текста и тестируй
Max
привет! Я тут настраиваю алертинг в слек с атласа - посоветуйте на что лучше повесить алерты, на какие условия? может есть какие-то базовые / общепринятые правила?
Roman
Доброго времени суток, подскажите, ...find({name:/T^/i}) - здесь я нахожу все name начинающиеся на букву т, а как мне выполнить запрос в которм я хочу найти name заканчивающиеса на букву т?
Что это за регулярка у тебя? Знак ^ должен стоять вначале регулярки. Он означает начало строки. Чтобы работал этот знак нужно использовать флаг m. Если тебе нужен конец строки, то используй $. Т.е. получиться /t$/mi
S
спаибо, а где мне можно найти справочник по этим выражениям?
Максим
спаибо, а где мне можно найти справочник по этим выражениям?
Гугли, регулярные выражения в жаваскрипт.
S
Да максим спасибо, я все нашел.
Максим
👍
SuleYman
Приветствую, как узнать через терминал что хранится в монго?
Roman
спаибо, а где мне можно найти справочник по этим выражениям?
Посмотри миникурс у loftblog на ютубе, прокачаешься, а потом практика
Artem
Коллеги, добрый вечер. Объясните, пожалуйста, в чём загвоздка? .aggregate([ { $lookup: { from: 'userChat', localField: 'userId', foreignField: 'userId', as: 'fromItems', }, }, { $replaceRoot: { newRoot: { $mergeObjects: [{ $arrayElemAt: ['$fromItems', 0] }, '$$ROOT'] } }, }, { $match: { // chatId, status: 'ACTIVE', }, }, ]); Возвращает: [ .... chatId: '5fa989e61ebeab38b09b6d3e' .... ] но если я в запросе комментирую условие status: 'ACTIVE' и раскомментирую chatId, то запрос ничего не выдёт, почему ?
Artem
вот скрин)