Ко всем статьям

MongoDB vs Firebase, что выбрать для старта JS-разработчику?

Как frontend-разработчику выбирать средства работы с данными для своих приложений

Для некоторых задач frontend-разработчикам приходится выбирать для своих приложений средства для работы с данными. Самые популярные для проектов на JS, имеющие хорошие и практичные средства для работы с ними, а также работающие c форматом JSON - это Firebase и MongoDB. 

Для начала давайте обсудим, что из себя представляет Firebase и MongoDB.

Так что такое Firebase? 

Firebase - это NoSQL облачная база данных в реальном времени, разработанная Google, в которой помимо основных функций для работы с данными, существуют дополнительные средства для взаимодействия с ними. А именно: в ней легко синхронизировать данные между пользователями в реальном времени и сообщить всем пользователям об изменении данных. Помимо этого, данные в ней размещаются в облаке, следовательно, обслуживание сервера не требуется. 

MongoDB же представляет собой NoSQL базу данных на основе документов. Документы в ней написаны в формате JSON, а MongoDb внутри преобразовывает их в формат BSON (двоичный формат). 

Так как же сделать выбор между ними? Для этого давайте рассмотрим плюсы и минусы каждой. 

Firebase 

Плюсы Firebase заключаются в: 

  • Работа на платформе Google 
  • Быстрый старт 
  • Система callback-ов при получении данных 
  • Доступность сервисов тестирования 

Минусами же является то, что: 

  • Не весь функционал доступен бесплатно 
  • Медленные запросы 
  • Не имеет открытого исходного кода 
  • Не обеспечивает высокую производительность 

MongoDB 

Основные плюсы MongoDB: 

  • Быстрые запросы. 
  • Имеет открытый исходный код. 
  • Обеспечивает высокую производительность приложений с высоким трафиком. 

Минусы использования: 

  • Нет ACID(Atomicity — Атомарность, Consistency — Согласованность, Isolation — Изолированность, Durability — Прочность) - требований к транзакционной системе 

Какие выводы можно из этого сделать? 

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

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