Как стать автором
Обновить
0

MongoDB *

Документо-ориентированная система управления БД

Сначала показывать
Порог рейтинга
Уровень сложности

Рецензия на книгу Владимира Дронова «Node.js, Express, MongoDB и React. 23 урока для начинающих», есть промокод

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров4.1K

В мире инструментов веб‑разработки особое место занимают технологии, объединенные аббревиатурой MERN (MongoDB, Express, React, Node.js), представляющие собой комплексное решение для разработки современных веб‑приложений. Книга Владимира Дронова «Node.js, Express, MongoDB и React. 23 урока для начинающих» представляет собой полезный ресурс для тех, кто хочет освоить этот стек технологий. И еще важно — это мощная книга на 600+ страниц, а не проходная брошюрка.

Читать далее
Всего голосов 8: ↑6 и ↓2+11
Комментарии7

Новости

Квест по синхронизации аналитического и оперативного хранилищ в реальном времени без потерь на сотнях терабайт данных

Уровень сложностиСредний
Время на прочтение12 мин
Количество просмотров2.2K

Я работаю в компании STM Labs, где мы строим большие высоконагруженные системы класса Big Data. Эта статья написана по мотивам моего выступления на конференции Saint Highload 2023. Хочу рассказать вам увлекательную историю про то, как мы искали лучшее решение по синхронизации аналитического и оперативного хранилищ в реальном времени. Нам важно было сделать это без потерь, потому что на кону стояли сотни и более терабайт данных.

Сразу обозначу, чего в этой статье не будет:

• Я не буду подробно говорить о типах СУБД и их различиях.
• Я не буду делать обзор аналитических СУБД. Тут каждый выбирает сам.
• Я не буду подробно останавливаться на архитектуре, отказоустойчивости и масштабировании СУБД MongoDB.
• Я не буду делать обзор отличий OLAP и OLTP.
• Я не буду делать обзор и сравнение реализаций CDC в различных СУБД.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии6

Как мы решали вопрос многоязычности в боте

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров3.6K

Русский или English? Что для бота хорошо, то разработчику работа :)

Введение

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

Постановка Задачи

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

Читать далее
Всего голосов 16: ↑14 и ↓2+12
Комментарии27

Как мы запускали серьезный проект в Telegram

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров13K

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

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

Читать далее
Всего голосов 27: ↑21 и ↓6+18
Комментарии30

Истории

Calypso: Схема данных MongoDB на Scala

Уровень сложностиСложный
Время на прочтение8 мин
Количество просмотров4.4K

Чтобы применять Domain-Driven Design, DDD Aggregate и Transactional outbox на MongoDB, наша команда создала open source — библиотеку calypso для работы с BSON.

Публикация для тех, кто стремится к современным практикам разработки и разделяет наше влечение к Scala 3.

Готовы к открытиям? Добро пожаловать в мир функционального программирования и надёжной работы с schema-on-read.

Читать далее
Всего голосов 74: ↑74 и ↓0+74
Комментарии7

Перенести терабайты канбан-досок в облако: опыт команды Yandex Tracker

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3K

Привет, меня зовут Мария Карпенко, я разработчик в команде Yandex Tracker — сервиса для управления процессами и проектами. Внутри Яндекса сервис  используется для постановки задач практически во всех командах, так что общее количество событий по задачам исчисляется уже миллиардами. 

Как внутренний сервис Tracker существует с 2012 года, и старые инстансы исторически использовали базы данных on-premise. Но к 2023 году многие части даже из списка легаси должны были переехать в облако — и нам понадобилось продумать бесшовный переезд для достаточно объёмных БД.

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

Читать далее
Всего голосов 17: ↑14 и ↓3+13
Комментарии6

Первый месяц жизни приложения BookDesk или как меня пытались взломать

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров3.1K

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

Всем привет. Чуть более месяца назад я выпустил релиз своего приложения BookDesk: Читательский дневник для хранения всех своих прочитанных книг. Почитать про историю создания можно в первой части.

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии14

Сколько нужно ядер cpu, чтобы выдержать 30k+ rps?

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров8.7K

Меня зовут Вадим Ивахин, я техлид в Vi.Tech — это IT-дочка ВсеИнструменты.ру.

Я и мои коллеги трудимся над большим количеством проектов и используем в своей работе различные инструменты, в том числе MongoDB. В этой статье я не стану рассказывать о том, что такое MongoDB. Хочу рассказать о её интересной и удобной особенности — механизме Watch, и о том, как с его помощью спроектировать приложение, способное выдержать десятки тысяч rps.

Читать далее
Всего голосов 23: ↑19 и ↓4+17
Комментарии34

Визуализация результатов Telegram-опросов в Grafana

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров4.8K

Хотел бы поделиться интересным решением, которое, уверен, было бы полезно для кооперативов и товариществ.

Современные технологии постепенно проникают во все области нашей жизни. Сегодня сложно представить соседей многоквартирных домов или земельных участков СНТ/ДНТ без группового чата в мессенджере. Такие группы удобны для общения, они позволяют оперативно решать вопросы, публиковать объявления, делиться новостями и даже проводить опросы и голосования.

Кстати, голосование в мессенджере может иметь юридическую силу. Для этого нужно принять решение о возможности применения электронных средств при принятии решений общим собранием членов товарищества и внести соответствующие изменения в устав товарищества (п. 25 ч. 1 ст. 17 федерального закона № 217-ФЗ). При создании нашего товарищества так мы и сделали, и теперь большинство вопросов мы решаем удаленно через Telegram.

Результаты опросов, проведенных в Telegram, отображаются почти моментально в интерфейсе мессенджера. Однако такие результаты не учитывают случаи, когда количество голосов у членов товарищества отличается. Кроме того, в общем чате могут присутствовать супруги/родственники участников, которые могут проголосовать без права голоса. В итоге всё сводится к тому, что необходимо каждый раз пересчитывать голоса.

Чтобы не утомлять секретаря собрания лишней рутиной, мы решили автоматизировать этот процесс. И вот, что у нас получилось.

На скриншотах ниже представлены результаты одного из первых Telegram-опросов, которые мы провели.

Читать далее
Всего голосов 12: ↑11 и ↓1+12
Комментарии5

Как я создавал мобильное приложение для хранения прочитанных книг BookDesk

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров5.1K

Всем привет! Меня зовут Александр, мне 33 года и я React-разработчик из Беларуси (10 лет опыта во фронтенде).

Я хочу рассказать о моем опыте создания мобильного приложения для хранениях прочитанных книг BookDesk.

Все началось еще в 2020 году, когда началась пандемия коронавируса, и всем пришлось находиться в изоляции. Тогда и пришла идея о создании своего приложения. У меня богатый опыт разработки веб-приложений на React, и поэтому я решил попробовать себя в новом направлении. Я решил долго не думать над технологиями и использовать React Native в связке с Node.js и MongoDB, т. к. ранее я уже работал с Node.js и MongoDB для создания веб приложений и, поэтому, выбор был очевиден.

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии35

Готовимся к собеседованию: 82 вопроса по MongoDB

Время на прочтение17 мин
Количество просмотров8.2K

С момента своего появления MongoDB успела завоевать огромную популярность благодаря своей способности обрабатывать большие объемы данных. Ее принятие только растет, впрочем, как и сам рынок, на котором она востребована. Если вы нацелены связать свою карьеру с MongoDB, то сейчас самое время. Чтобы помочь вам на этом пути, мы подготовили список часто задаваемых вопросов по MongoDB с собеседований и ответов на них.

Читать далее
Всего голосов 17: ↑8 и ↓90
Комментарии3

Пишем продвинутый планировщик с использованием React, Nest и NX. Часть 4: пользовательский интерфейс

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров5.2K

Друзья, всем привет! Меня зовут Игорь Карелин, я frontend-разработчик в компании Домклик. Как вы помните из предыдущих частей (1, 2, 3), у нас уже есть функциональность для работы с планировщиком в бэкенде. Теперь нашей задачей будет создать удобный и интуитивно понятный пользовательский интерфейс, чтобы пользователи могли легко взаимодействовать с задачами.

Читать далее
Всего голосов 22: ↑21 и ↓1+23
Комментарии1

MongoDB vs PostgreSQL. Сравнение документо-ориентированной и реляционной базы данных

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров13K

Дети часто задаются вопросом - кто сильнее, кит или слон? каратист или боксер? В этой статье мы попробуем ответить на на похожий вопрос, сравнив SQL (ну или почти SQL) базу данных PostgreSQL и NoSQL базу данных MongoDB. И понять, для каких проектов лучше подойдет реляционная PostgreSQL, а для каких MongoDB.

Данное сравнение также важно, потому что, учитывая новый функционал, MongoDB стала обладать некоторыми качествами SQL СУБД, включая многодокументные ACID-транзакции, вторичный индекс и расширенные возможности запросов. А PostgreSQL расширяет возможности работы с JSON, включаяиндексирование и оптимизацию запросов.

Читать далее
Всего голосов 12: ↑7 и ↓5+4
Комментарии22

Ближайшие события

Антиконференция X5 Future Night
Дата30 мая
Время11:00 – 23:00
Место
Онлайн
OTUS CONF: GameDev
Дата30 мая
Время19:00 – 20:30
Место
Онлайн
Конференция «IT IS CONF 2024»
Дата20 июня
Время09:00 – 19:00
Место
Екатеринбург
Summer Merge
Дата28 – 30 июня
Время11:00
Место
Ульяновская область

Как сэкономить деньги на Interzone Egress. Part 1

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров527

Добрый день, уважаемые коллеги!

Меня зовут Анкин Николай и это мой первый пост. На текущий момент я тружусь в должности DevOps Engineer в компании Altenar. История о том , как я сэкономил денег своему любимому работодателю.

На что мы тратим 3k$ в месяц ?

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Как мы настраивали PostgreSQL для использования в качестве кэша

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров8.5K

В этой статье Антон Колесов, технический руководитель группы по эксплуатации платформ и системных решений, расскажет, как команда разработчиков Nexign настраивала альтернативное решение для кэша одной из наших высоконагруженных систем и анализировала возможность использования PostgreSQL в качестве одного из вариантов.

Читать далее
Всего голосов 13: ↑12 и ↓1+13
Комментарии10

А как понять? Делаем аналитику для бота с нуля. Часть 2 — делаем дашборд в Redash

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.2K

В предыдущей статье мы подготовили наше тестовое приложение — бота для обмена анонимными сообщениями в Telegram.

Пришло время отобразить все данные, которые мы собрали. Для этого мы будем использовать Redash.

Читать далее
Всего голосов 1: ↑0 и ↓1-1
Комментарии1

Оптимизация выборок в больших коллекциях MongoDB

Время на прочтение7 мин
Количество просмотров2.3K

При работе с большими коллекциями в MongoDB, размер которых превышал десятки миллионов записей, возникла необходимость формировать случайные выборки уникальных значений полей, принадлежащих документам этой коллекции.

Для такой операции, в MongoDB штатно предусмотрена функция $sample, которую можно использовать в составе pipeline при проведении агрегации данных. Однако, как показала практика, выполнение выборки полей таким образом на большой коллекции может занимать весьма ощутимое время. Чтобы сократить время выполнения таких выборок, потребовалось разработать собственный алгоритм, который на порядки увеличил скорость работы. Ниже приведен подход и вариант реализации данного алгоритма.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии3

Kubernetes Volumes: реплицированная MongoDB со StatefulSet

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров2.2K

Привет Хабр!

В Kubernetes StatefulSet — это реплицированные группы Pod’ов, аналогичные ReplicaSet’ам.

Каждая реплика получает постоянное имя хоста с уникальным индексом (например, database-0, database-1 и т. д.).

Каждая реплика создается в порядке от самого низкого до самого высокого индекса и создание блокируется до тех пор, пока под с предыдущим индексом не станет работоспособным и доступным. Это относится и к масштабированию.

При удалении StatefulSet каждый из управляемых подов реплики также удаляется в порядке убывания. Это также относится к уменьшению количества реплик.

Оказывается, этот простой набор требований значительно упрощает развертывание приложений для хранения данных в Kubernetes. Например, сочетание стабильных имен хостов (например, database-0) и ограничений порядка означает, что все реплики, кроме первой, могут надежно ссылаться на database-0 для целей обнаружения и установления кворума репликации.

Сегодня мы развернем реплицированный кластер MongoDB с StatefulSet.

Читать далее
Всего голосов 7: ↑6 и ↓1+6
Комментарии3

Микросервисная реализация объектно-ориентированных баз данных

Уровень сложностиСредний
Время на прочтение50 мин
Количество просмотров9.4K

В настоящее время объектно-ориентированные базы данных (ООБД) не имеют достаточно большого распространения в повседневном использовании, да и более того, не настолько популярны как реляционные базы данных, которые не один десяток лет уже активно поддерживаются различными сообществами и имеют долгую историю применения.

В данной статье рассматривается реализация ООБД в контексте разработки системы, состоящей из микросервисов, на примере Perst и Db4o. Также будет рассмотрена отдельная реализация с документно-ориентированной базой данных MongoDB, работа с которой имеет много общего с ООБД.

Целью данной статьи является рассмотрение практического применения ООБД и решения проблем совместимости с помощью микросервисной архитектуры.

Читать далее
Всего голосов 6: ↑5 и ↓1+5
Комментарии2

KMongo и неструктурированные данные

Время на прочтение5 мин
Количество просмотров1.5K

Несмотря на то, что MongoDB начало движение в сторону строгости реляционной модели, она по прежнему остается документной БД и предполагает возможность сохранения документов произвольной структуры. И при использовании MongoDB в языках с динамической типизацией (JavaScript, Python) сохранение или генерация объектов не вызывает сложностей, поскольку заранее не требуется определить структуру извлекаемого или сохраняемого объекта. Но как действовать в случае использования драйверов для MongoDB для языков со строгой типизацией?

В этой статье мы разберем приемы для работы с неструктурированными данными, которые позволят сохранить преимущества использования сериализации с механизмами рефлексии для извлечения произвольных документов.

Читать далее
Всего голосов 10: ↑10 и ↓0+10
Комментарии0
1
23 ...