Cap
возможно заюзать Capped collection для сообщений, если не нада архивировать очень старую историю
Anonymous
да я фото вообще не храню на сервере, он ссылается на фото с api vk, допустим, в сообщении я укажу поля ссылки на фото, и псевдоним, а он изменит, и как быть?
Cap
фото закешировать у себя, для скорости
возможно будет интереснее если будет стоять то фото при котором было написанно сообщение
- фича твоего чата !
Cap
А вообще Фото меняется реже чем запрашиваются сообщения - выгоднее обновлять везде фото, чем делать ссылкой
Anonymous
так то да, тем более история чата будет совсем небольшая, и на клиенте реакт будет хранить нужное количество сообщений, и отпинывать лишние
Anonymous
- фича твоего чата ! Это сильно)
Anonymous
думаю заказчику не очень понравиться моя фича
Cap
Короче говоря, если речь про скорость, то по максимуму подготавливаем данные под запросы, чтоб их не приходилось лопатить каждый раз, а берём почти готовые
Anonymous
спасибо
Anonymous
Привет, а можно ли sql таблицу перевести в json и запушить в mongo?
Anonymous
Можно. А зачем?
Anonymous
Можно что угодно перевести в JSON и запушить в MongoDB.
Anonymous
Можно. А зачем?
нужна таблица готовых данных которая есть только в sql формате
Anonymous
Доброго всем. Подскажите пожалуйста, можно ли вытащить с коллекции документы фильтра {type: "type1}, {type: "type2} и для каждого типа ограниченный лимит, допустим каждого типа по 20 документов. Можно ли сделать так в одном запросе? Промиссы? Отдельные роуты для каждого типа?
Igor
yopp
Igor
о, йопп! привет!
а если надо убедиться, что type лишь уникальные?
к примеру db.coll.find({}).limit(5) возвращает пять документов [{group_id: 4}, {group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}]
_id я опустил для упрощения.
а хочется чтобы хуяк distinct/unique по полю group_id и вернуло либо
[{group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}]
(что не совсем круто, т.к. стоял лимит 5, и хотелось бы получить 5)
либо
[{group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}, {group_id: 10}]
yopp
yopp
о, йопп! привет!
а если надо убедиться, что type лишь уникальные?
к примеру db.coll.find({}).limit(5) возвращает пять документов [{group_id: 4}, {group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}]
_id я опустил для упрощения.
а хочется чтобы хуяк distinct/unique по полю group_id и вернуло либо
[{group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}]
(что не совсем круто, т.к. стоял лимит 5, и хотелось бы получить 5)
либо
[{group_id: 4}, {group_id: 2}, {group_id: 1}, {group_id: 8}, {group_id: 10}]
Привет. Какую проблему ты пытаешься этим решить?
Igor
проблему "хотим на сайте отобразить пять карточек от разных партнеров, не должны повторяться".
может, sort меня здесь должен спасти, но гарантий же он никаких не даст?..
yopp
записей всего сколько?
Igor
сейчас - 3000. может быть раз в 10-50 больше.
distinct('group_id') - сейчас 200. может быть тоже раз в 10 больше.
yopp
я правильно понимаю что у тебя есть коллекция, в которой есть аттрибут group_id. Тебе нужно выбрать 5 объектов с уникальным group_id?
Igor
да! сорри, что хреново сформулировал
yopp
по group_id индекс есть?
yopp
но вообще на 3к докуметов я бы не запаривался и делал бы как быстрее и понятнее
Igor
сделаем если что :)
правда, удручает еще, что на проде монга 2.6.7 и обновляться не хотят
yopp
быстрее в смысле «быстрее реализуется»
yopp
на 3 тыщах докуметов вообще по барабану :)
Igor
ок, а 50 тыщ тоже пофигу? объекты небольшие, килобайт наверное плейнтекстом если
Igor
хотя я в любом случае планировал выбирать, скажем, limit(5*2) и фильтровать дальше на бекенде потом
Igor
просто переживаю, что монга может сработать сильно производительнее
yopp
писят тыщ килобайт это целых 48 мегабайт
yopp
это должна быть какая-то сильно порезанная по ресурсам виртуалка, чтоб прозед 48 мегабайт в памяти стал проблемой
yopp
но идея с 5*2 более простая, да
yopp
я бы её выбрал :)
Igor
спасибо огромное :)
Anonymous
Anonymous
George
привет. нет никакого нативного решения, чтобы выдавать последовательно результаты query в монге? Она работает довольно медленно, если составил сложный запрос и хотелось бы быстро получать информацию.
Alexander
курсор?
я решал еще подобное пакетной обработкой
Alexander
то есть с использованием skip() и limit()
George
нужно передавать в аргумент функции результаты выполнения, так что итерироваться по курсору несколько раз не подходит
George
а через skip как?
Ростислав
Добрый день, подскажите пожалуйста, я новичок в mongodb, хочу написать приложение на связки express + mongodb, раньше писал на ruby, python немного на go, использовал postgres либо mysql, можете сказать пожалуйста какие есть ограничения у mongodb, в плане, на сколько она лучше/хуже postgres'а либо mysql, можно ли делать какой-то большой сервис целиком на связки mongo и express ?
Cap
Добрый день, подскажите пожалуйста, я новичок в mongodb, хочу написать приложение на связки express + mongodb, раньше писал на ruby, python немного на go, использовал postgres либо mysql, можете сказать пожалуйста какие есть ограничения у mongodb, в плане, на сколько она лучше/хуже postgres'а либо mysql, можно ли делать какой-то большой сервис целиком на связки mongo и express ?
Сильно зависит от характера сервиса
Ростислав
Подобный medbooking.com
Cap
Ну конечно можно сделать, и будет както работать. Но для лучшего решения нужно изучить приемущества, недостатки, особенности монги и будет понятно где ее применить в твоем мега сервисе
Ростислав
Очень много слышу про популярный стек MEAN, захотел изучить его, ну и как я понял mongo и express тесно дружат
Cap
Попробуй
Ростислав
Спасибо)
Cap
Я использую монго в игровом сервере, мне нравится возможность хранить структурированые иерарх данные, т.е объекты перегоняю в json напрямую. Отсутствие схемы, гибко можно добавлять удалять поля(но осторожно)
Cap
Скорость довольно высокая
Cap
Удобно хранить разреженные данные(это в другом проекте, где система собирала статистику на покер игроков для системы принятия решени0й для бота)
Cap
Нравится gridFS, и не нада париться с sql blob
Ростислав
понял, спасибо за информацию)
yopp
yopp
Добрый день, подскажите пожалуйста, я новичок в mongodb, хочу написать приложение на связки express + mongodb, раньше писал на ruby, python немного на go, использовал postgres либо mysql, можете сказать пожалуйста какие есть ограничения у mongodb, в плане, на сколько она лучше/хуже postgres'а либо mysql, можно ли делать какой-то большой сервис целиком на связки mongo и express ?
Совершенно побарабану на чём начинать. На чём умеешь, на том и делай. Плюс монги в относительно низком пороге вхождения. В остальном база как база. Нужно запомнить что монга НЕ реляционная база данных и научится мыслить документами. Это значит что подходы из реляционной субд в монге будут работать из рук вон плохо.
Ну и да, не надо забывать что транзакций нет, есть только гарантия атомарности изменений в одном документе. Это требует тоже отдельного мышления.
yopp
Но общее правило: если без транзакций никак — лучше брать не монгу
yopp
Потому что транзакции в монге ОЧЕНЬ сложно делаются
Ростислав
спасибо большое, учту!)
Eugene
Привет, ребят. Сделал 2 формы авторизации и регистрации. Теперь их как то надо обработать на node (желательно без express) и данные запихнуть в монгу. Подскажите мб туториал какой то по созданию и обработки форм и доку какую то
yopp
это в канал по ноде
Anonymous
привет, а кто может подсказать, правильно ли я понимаю что в монго не предполагаются join запросы, а для связей надо собирать айди в документе?
Anonymous
Есть $lookup в агрегациях.
Sergey
Если при работе с монгой понадобился $lookup, значит что-то пошло не так на этапе выбора СУБД
Anonymous
в доках указывается что вроде как нужно коллекционировать айди записей и добавлять их пользователю
Sergey
Anonymous
Cap
Cap
Anonymous
Anonymous
Не понятна целиком задача, мало инфы
задача довольно простая - вывожу список пользователей и у каждого указываю количество записей, пользователь и запись связаны через _id
Anonymous