- Главная
- Информатика
- NoSQL
Содержание
- 2. Категории NoSQL баз: 1. Key-Value (Ключ-Значение) базы данных. Это очень простые по своей идее хранилища. Фактически
- 3. Структура информации Структуру данных в реляционных системах на примере MySQL мы можем представить в виде следующей
- 4. MongoDB реализует новый подход к построению баз данных, где нет таблиц, схем, запросов SQL, внешних ключей
- 5. Если реляционные базы данных хранят строки, то MongoDB хранит документы. В отличие от строк документы могут
- 6. Всю модель устройства базы данных в MongoDB можно представить следующим образом: Если в реляционных БД содержимое
- 7. В отличие от строк документы могут содержать разнородную информацию. Так, рядом с документом, описанным выше, в
- 8. Настройка запросов и сортировка MongoDB представляет ряд функций, которые помогают управлять выборкой из бд. Одна из
- 9. Условные операторы в MongoDB В MongoDB в запросах можно использовать условные конструкции с помощью операторов сравнения:
- 10. Удаление поля Для удаления отдельного ключа используется оператор $unset: > db.users.update({name : "Tom"}, {$unset: {salary: 1}})
- 12. Скачать презентацию
Категории NoSQL баз:
1. Key-Value (Ключ-Значение) базы данных.
Это очень простые по
Категории NoSQL баз:
1. Key-Value (Ключ-Значение) базы данных.
Это очень простые по
2. BigTable.
Это база данных разработанная компанией Google для собственных нужд. Эта база представляет собой большую таблицу с тремя измерениями: колонки, строки и временны'е метки. Такая архитектура позволяет добиться очень высокой производительности, кроме того, она хорошо масштабируется на множество компьютеров. Но это не реляционная база, и она не поддерживает многие возможности реляционных баз.
3. Документо-ориентированные базы данных.
Такие базы немного напоминают Key-Value базы, но в данном случае, база данных знает, что из себя представляют значения. Обычно, значением является некоторый документ или объект, к структуре которого можно делать запросы.
4. Базы данных построенные на графах.
Такие базы ориентированы на поддержку сложных взаимосвязей между объектами, и основываются на теории графов. Структура данных в таких базах представляет собой набор узлов, связанных между собой ссылками. При этом и узлы и ссылки могут обладать некоторым количеством атрибутов.
Структура информации
Структуру данных в реляционных системах на примере MySQL мы
Структура информации
Структуру данных в реляционных системах на примере MySQL мы
База данных -> Таблица -> Строка -> Поле + Значение.
Как это все выглядит в MongoDB:
База данных -> Коллекция -> Документ -> ключ + значение.
MongoDB реализует новый подход к построению баз данных, где нет таблиц,
MongoDB реализует новый подход к построению баз данных, где нет таблиц,
В отличие от реляционных баз данных MongoDB предлагает документо-ориентированную модель данных, благодаря чему MongoDB работает быстрее, обладает лучшей масштабируемостью, ее легче использовать.
Но, даже учитывая все недостатки традиционных баз данных и достоинства MongoDB, важно понимать, что задачи бывают разные и методы их решения бывают разные. В какой-то ситуации MongoDB действительно улучшит производительность вашего приложения, например, если надо хранить сложные по структуре данные. В другой же ситуации лучше будет использовать традиционные реляционные базы данных.
Если реляционные базы данных хранят строки, то MongoDB хранит документы. В
Если реляционные базы данных хранят строки, то MongoDB хранит документы. В
Ключ представляет простую метку, с которым ассоциировано определенный кусок данных.
Однако при всех различиях есть одна особенность, которая сближает MongoDB и реляционные базы данных. В реляционных СУБД встречается такое понятие как первичный ключ. Это понятие описывает некий столбец, который имеет уникальные значения. В MongoDB для каждого документа имеется уникальный идентификатор, который называется _id.
Всю модель устройства базы данных в MongoDB можно представить следующим образом:
Если
Всю модель устройства базы данных в MongoDB можно представить следующим образом:
Если
Каждая коллекция имеет свое уникальное имя - произвольный идентификатор.
В отличие от реляционных баз данных MongoDB не использует табличное устройство с четко заданным количеством столбцов и типов данных. MongoDB является документо-ориентированной системой, в которой центральным понятием является документ.
Документ можно представить как объект, хранящий некоторую информацию. В некотором смысле он подобен строкам в реляционных субд, где строки хранят информацию об отдельном элементе.
В отличие от строк документы могут содержать разнородную информацию. Так, рядом
В отличие от строк документы могут содержать разнородную информацию. Так, рядом
Добавление данных и создание коллекций
Для вставки в коллекцию используется функция insert. Самый простой пример ее использования:
> db.users.insert({"name": "Tom", "age": 28, languages: ["english", "spanish"]})
> db.users.find()
В данном случае в коллекцию users добавляется простой объект.
Настройка запросов и сортировка
MongoDB представляет ряд функций, которые помогают управлять выборкой
Настройка запросов и сортировка
MongoDB представляет ряд функций, которые помогают управлять выборкой
> db.users.find().limit(3)
MongoDB предоствляет возможности отсортировать полученный из бд набор данных с помощью функции sort. Передавая в эту функцию значения 1 или -1, мы можем указать в каком порядке сортировать: по возрастанию (1) или по убыванию (-1). Во многом эта функция по действию аналогична выражению ORDER BY в SQL. Например, сортировка по возрастанию по полю name:
> db.users.find().sort({name: 1})
Условные операторы в MongoDB
В MongoDB в запросах можно использовать условные конструкции
Условные операторы в MongoDB
В MongoDB в запросах можно использовать условные конструкции
$gt (больше чем)
$lt (меньше чем)
$gte (больше или равно)
$lte (меньше или равно)
Например, найдем все документы, у которых значение ключа age меньше 30:
> db.users.find ({age: {$lt : 30}})
Оператор $ne
$ne извлекает все документы, не соответствующие некоторому условию:
> db.users.find ({age: {$ne : 22}})
Удаление поля
Для удаления отдельного ключа используется оператор $unset:
> db.users.update({name : "Tom"}, {$unset:
Удаление поля
Для удаления отдельного ключа используется оператор $unset:
> db.users.update({name : "Tom"}, {$unset:
Оператор $push
Оператор $push позволяет добавить еще одно значение к уже существующему. Например, если ключ в качестве значения хранит массив:
> db.users.update({name : "Tom"}, {$push: {languages: "russian"}})
Оператор $addToSet подобно оператору $push добавляет объекты в массив. Отличие состоит в том, что $addToSet добавляет данные, если их еще нет в массиве.