Рубрика «mongodb» - 11

GridFS — это спецификация MongoDB для хранения больших файлов. В этой статье я расскажу как можно легко загружать файлы в GridFS, а затем извлекать их из базы данных и отображать в браузере.
Читать полностью »

Примерно месяц назад, я рассказал Хабру о проекте Bagri: NoSQL базе данных с открытым кодом, построенной поверх распределенного кэша.

После достаточно неплохого отклика, решил написать статью о том как можно наращивать функционал Bagri путем написания расширений (extensions) используя встроенный API системы.

image

Читать полностью »

Возможно, всё что я напишу ниже – очевидно, и все этим пользуются давно, но я вот недавно только это понял и придумал, так что, может, кому и пригодится.

Yii2 и расширение yii2-mongodb к сожалению, не работает с вложенными документами, тем самым оставляя за бортом существенное преимущество документоориентированной БД.
В документации предлагают использовать расширение для вложенных документов, но можно обойтись и без него.
Предположим, у нас есть модель, формирующая PDF-файл для загрузки, и мы хотим следить за количеством его скачиваний, IP-адресами скачавших и, например, временем, когда файл был загружен.

Читать полностью »

В данной статье я расскажу вам как исходя из своего опыта я написал небольшой npm-модуль, который помог мне и, думаю, может помочь вам сэкономить приличное количество времени и сократить код практически в два раза.

Все начал с того что я решил написать изоморфный CMS для одного из моих проектов с использованием следующих технологий:

  • React — для постройки UI
  • Express — в качестве сервера
  • MongoDb + Mongoose — noSQL база данных
  • graphQL — основной API для взаимодействия с базой данных
  • Apollo-Client — коннектор для удобного вызова запросов и мутаций через graphQL
  • webpack — для сборки проекта и разделения клиентского и серверного кода

Упрощенная архитектура выглядит следующим образом:

__root
1 |__client
2 |__public
3 |__middleware
4 |__server

  1. React-компоненты
  2. Бандл клиентского кода и остальные публичные файлы
  3. Mongoose: схемы, дополнительные методы и graphQL: типы, класс с запросами, класс с мутациями, схема
  4. Бандл серверного кода вместе с express сервером

Читать полностью »

Всем доброго времени суток! Недавно жизнь подкинула автору увлекательную работу по развертыванию MongoDB кластера с настройкой репликации и шардирования, а также аутентификации c использованием x.509 сертификатов. В данной статье я в первую очередь хотел бы изложить свои мысли и поделиться полученными опытом. Так как некоторые вещи оказались не тривиальными и сделать их с первого раза не удавалось, то думаю мои пошаговые инструкции могут пригодиться для освещения вопроса тем кто только знакомится с шардированием данных и работой с MongoDB в целом.
Также я буду очень рад увидеть рекомендации по добавлению/изменению конфигурации кластера и просто вопросы или критику по самой статье или по сути вопроса.
Читать полностью »

Как мы делали мониторинг запросов mongodb - 1

Использование монги в production — достаточно спорная тема.
С одной стороный все просто и удобно: положили данные, настроили репликацию, понимаем как шардировать базу при росте объема данных. С другой стороны существует достаточно много страшилок, Aphyr в своем последнем jepsen тесте сделал не очень позитивные выводы.

По факту оказывается, что есть достаточно много проектов, где mongo является основным хранилищем данных, и нас часто спрашивали про поддержку mongodb в окметр. Мы долго тянули с этой задачей, потому что сделать "осмысленный" мониторинг на порядок сложнее, чем просто собрать какие-то метрики и настроить какие-нибудь алерты. Нужно сначала разобраться в особенностях поведения софта, чтобы понять, какие именно показатели отслеживать.

Как раз про сложности и проблемы я и хочу рассказать на примере реализации мониторинга запросов к mongodb.

Читать полностью »

Как я изобретал велосипед, или мой первый MEAN-проект - 1

Сегодня, в период стремительного развития веб-технологий, опытному фронтэнд-разработчику нужно всегда оставаться в тренде, каждый день углубляя свои познания. А что делать, если Вы только начинаете свой путь в мире веб? Вы уже переболели вёрсткой и на этом не хотите останавливаться. Вас тянет в загадочный мир JavaScript! Если это про Вас, надеюсь данная статья придётся к стати.

Читать полностью »

Хобби-проекты: lets-meet.ru — куда пойдем в пятницу - 1
Автор: Артем Трубачев

Идея создания этого приложения родилась, когда мы с коллегами в очередной раз собирались пойти в бар, но никак не могли договориться о дате. Все мы люди взрослые, и свободного времени у нас, конечно, мало. lets-meet.ru создан как раз чтобы определить, когда всем будет удобнее собраться.

В двух словах, это работает так: вы создаете встречу и указываете варианты даты, время и места. Также можно добавить дополнительные вопросы.Читать полностью »

Разработка облачного сервиса Scorocode: часть 1 - 1

В этой статье я расскажу, как мы разрабатывали облачный сервис Scorocode, с какими проблемами столкнулись, и, что самое важное, поделюсь планами развития.

Небольшой опрос в конце статьи позволит читателям отдать голоса за планируемые в будущем функции, тем самым повлияв на стратегию развития сервиса.
Читать полностью »

Представьте себе базу данных, способную валидировать JSON данные по схеме JSON Schema, отрабатывать события и обрабатывать данные. А если идея реализованна как сервис, использующий mongodb?

Мы разработали именно такой сервис. Им пользуются наши сайд проекты:

  • docast.me — любые источники данных можно слушать/смотреть в любимом подкастинговом приложении
  • watchlater — решение проблемы watch later youtube
  • warhealth — мобильное приложение

Под катом краткое описание основных особенностей сервиса с примерами.

Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js