кодесурса
«MongoDB

Введение в MongoDB

script1adsense2code
script1adsense3code

Что такое MongoDB?

MongoDB - это база данных с открытым исходным кодом, написанная на C ++.

Драйверы и клиентские библиотеки обычно написаны на соответствующих языках, хотя некоторые драйверы используют расширения C для повышения производительности.

Если нагрузка увеличивается, добавляя больше узлов (таких как компьютер), производительность можно сохранить.

Его можно использовать для хранения данных для высокопроизводительных приложений (например, Foursquare использует их в производстве).

MongoDB не поддерживает SQL. Он поддерживает собственный язык специальных запросов.

«MongoDB

MongoDB хранит данные в виде документов. Так что это документно-ориентированная база данных .

FirstName="Arun", Address="St. Xavier's Road", Spouse=[{Name:"Kiran"}], Children=[{Name:"Rihit", Age:8}]. 
         	   FirstName="Sameer",Address="8 Gandhi Road".

Обратите внимание, что есть два разных документа (разделенных "."). Хранение данных таким способом называется базой данных, ориентированной на документы . MongoDB - это документно-ориентированная база данных.

Ключевая особенность

Поскольку MongoDB предлагает хранилище , ориентированное на документы , оно простое и легко программируемое.

  • Вы можете установить индекс для любого атрибута записи MongoDB (например, FirstName = "Sameer", Address = "8 Gandhi Road"), относительно которого запись может быть быстро отсортирована и упорядочена.
  • Вы можете установить зеркало как в локальной, так и в глобальной сети, что делает его легко масштабируемым.
  • Если нагрузка увеличивается (больше места для хранения, больше вычислительной мощности), она может быть распределена на другие узлы через компьютерные сети. Это называется шардингом .
  • MongoDB поддерживает расширенный запрос для извлечения данных из базы данных.
  • MongoDB поддерживает замену всего документа (базы данных) или некоторых определенных полей командой update ().
  • MongoDB поддерживает инфраструктуру Map / Reduce для пакетной обработки данных и агрегирования. Вот кратко о том, как работает Map / Reduce:
  • Карта: главный узел принимает входные данные. Разбивает его на более мелкие секции. Отправляет его в связанные узлы.
  • Эти узлы могут выполнять одну и ту же операцию по очереди, чтобы отправить эти меньшие части ввода другим узлам. Он обрабатывает проблему (берется как ввод) и отправляет ее обратно в главный узел.
  • Уменьшить: главный узел объединяет эти результаты, чтобы найти выходные данные.
  • Спецификация GridFS MongoDB поддерживает хранение очень больших файлов.
  • MongoDB поддерживает различные языки программирования, такие как C, C # и .NET, C ++, Erlang, Haskell, Java, Javascript, Perl, PHP, Python, Ruby, Scala (через Casbah).
  • Он поддерживает выполнение JavaScript на стороне сервера. Что позволяет разработчику использовать единый язык программирования для клиентского и серверного кода.
  • MongoDB легко устанавливается.

Основы MongoDB: часто задаваемые вопросы

Что это за база данных MongoDB ?
MongoDB - это документно-ориентированная СУБД. Подумайте о MySQL, но с JSON-подобными объектами, включающими режим данных, а не таблицы RDBMS. MongoDB не поддерживает ни объединений, ни транзакций.

Хранит ли база данных MongoDB свои данные в таблицах ?
База данных MongoDB хранит свои данные в коллекциях вместо таблиц, которые являются грубым эквивалентом таблиц СУБД.

Есть ли в базах данных MongoDB схемы ?
MongoDB использует динамические схемы. Без определения структуры вы можете создавать коллекции, то есть поля или типы их значений, документов в коллекции. Вы можете изменить структуру документов, просто добавив новые поля или удалив существующие.

Какие языки программирования можно использовать для работы с MongoDB ?
Драйверы клиента MongoDB существуют для всех самых популярных языков программирования. Смотрите последний список драйверов для деталей.

Поддерживает ли MongoDB SQL ?
Нет.

Каковы типичные виды использования MongoDB ?
Системы управления контентом, мобильные приложения, игры, электронная коммерция, аналитика, архивирование и логирование.

Поддерживает ли MongoDB транзакции ?
Нет. Однако MongoDB обеспечивает атомарные операции над одним документом.

Требуется ли MongoDB много оперативной памяти ?
Не обязательно. Конечно, возможно запустить MongoDB на машине с небольшим объемом свободной оперативной памяти. MongoDB автоматически использует всю свободную память на машине в качестве кеша.

MongoDB обрабатывает кеширование ?
Да. MongoDB хранит все последние использованные данные в оперативной памяти. Если вы создали индексы для своих запросов и ваш рабочий набор данных помещается в ОЗУ, MongoDB обслуживает все запросы из памяти.

Каковы ограничения 32-битных версий MongoDB ?
Изменено в версии 3.0: Коммерческая поддержка MongoDB больше не предоставляется на 32-битных платформах (Linux и Windows).

история

Разработка MongoDB началась в октябре 2007 года с 10gen. Первый публичный релиз был в феврале 2009 года.

Получить MongoDB

Вы можете скачать MongoDB с http://www.mongodb.org/downloads. На момент написания статьи он поддерживает следующие платформы:

  • OS X 32-битная
  • OS X 64-битная
  • Linux 32-битный
  • Linux 64-битный
  • Windows 32-битная
  • 64-битная Windows
  • Solaris i86pc
  • Солярис 64
  • Вы также можете скачать исходный код и установить MongoDB.

MongoDB: базы данных, схемы и таблицы

Базы данных: MongoDB - это документно-ориентированная СУБД с JSON-подобными объектами, составляющими модель данных, а не таблицы RDBMS. MongoDB не поддерживает соединения и транзакции. Тем не менее, он имеет вторичные индексы, выразительный язык запросов, атомарные записи на уровне документа и полностью согласованные операции чтения. MongoDB использует BSON , формат двоичных объектов, аналогичный, но более выразительный, чем JSON.

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

Таблицы: база данных MongoDB хранит свои данные в коллекциях, а не в таблицах. Коллекции являются грубым эквивалентом таблиц СУБД. Коллекция содержит один или несколько документов, которые соответствуют записи или строке в таблице реляционной базы данных, а каждый документ имеет одно или несколько полей, которые соответствуют столбцу в таблице реляционной базы данных.

MongoDB и ACID транзакции

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

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

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

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

Другие системы баз данных ссылаются на эту семантику изоляции как на чтение без передачи. Для всех вставок и обновлений MongoDB модифицирует

  • каждый документ изолированно
  • клиенты никогда не видят документы в промежуточных состояниях

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

MongoDB и кеширование

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

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

инструменты

Для управления MongoDB доступно несколько инструментов.

мониторинг

Инструмент мониторинга сети и системы Munin имеет плагин, доступный для MongoDB.

Распределенный высокопроизводительный инструмент мониторинга системы Gangila имеет плагин, доступный для MongoDB.

Графический инструмент с открытым исходным кодом Cacti, используемый для построения графика загрузки процессора, использования полосы пропускания сети, имеет плагин для MongoDB.

графический интерфейс пользователя

  • Fang of Mongo - это веб-интерфейс пользователя, созданный с использованием Django и jQuery.
  • Futon4Mongo является клоном веб-интерфейса CouchDB Futon для MongoDB.
  • Mongo3 - это интерфейс на основе Ruby.
  • MongoHub является родным приложением OS X для управления MongoDB.
  • Opricot - это оболочка MongoDB на основе браузера, написанная на PHP.
  • phpMoAdmin - инструмент управления MongoDB на основе PHP.
  • MongoVUE - это графический интерфейс на основе Windows для работы с MongoDB.
  • RockMongo - это инструмент для администрирования MongoDB на основе PHP.

MongoDB в производстве

Вот список нескольких производственных развертываний MongoDB:

  • Craiglist использует MongoDB для архивирования своих миллиардов записей.
  • FourSquare, сайт социальной сети на основе определения местоположения, использует MongoDB для хранения данных на нескольких компьютерах в Amazon EC2.
  • Shutterfly, социальное выражение и служба личных публикаций в Интернете, использует MongoDB для различных постоянных требований к хранению данных.
  • bit.ly, веб-сервис сокращения URL, использует MongoDB для хранения своих данных.
  • spike.com, партнер MTV Network, использует MongoDB.
  • Intuit, крупный поставщик программного обеспечения и услуг для малых предприятий и частных лиц, использует MongoDB для отслеживания вовлечения пользователей и активности в режиме реального времени по всей своей сети веб-сайтов для малых предприятий.
  • sourceforge.net, сайт для бесплатного поиска, создания и публикации ПО с открытым исходным кодом, использует MongoDB для внутреннего хранения.
  • etsy.com, сайт для покупки и продажи предметов ручной работы, использует MongoDB.
  • New York Times, один из ведущих новостных онлайн-порталов, использует MongoDB в приложении для создания форм для отправки фотографий.
  • ЦЕРН, престижный научно-исследовательский институт физики частиц, использует MongoDB для данных Большого адронного коллайдера.

Что вы узнаете

Учебник MongoDB по w3resource - первый в своем роде в Интернете. Это всеобъемлющее руководство по MongoDB, содержащее сотни примеров того, как использовать его с PHP.

Прочитав это руководство, вы сможете устанавливать и разрабатывать базовые веб-приложения с использованием MongoDB.

Далее: установить MongoDB в Windows

Новый контент: Composer: менеджер зависимостей для PHP , R программирования


script1adsense4code
script1adsense5code
disqus2code
script1adsense6code
script1adsense7code
script1adsense8code
buysellads2code