MongoDB — одна из самых распространенных нереляционных систем управления базами данных, работает под Linux. В основе Mongo лежит «Документ», в то время как в основе самой распространенной реляционный СУБД MySQL лежат столбцы и колонки. Данный материал из нескольких частей представляет собой руководство по MongoDB в Linux.
В рамках первой статьи рассматривается установка СУБД и простейшие действия по работе с элементами БД.
Устанавливаем MongoDB из стандартного репозитория
apt-get update
apt-get install mongodb
Данные mongodb по умолчанию будет хранить в каталоге /var/lib/mongodb
Логи — в каталоге — /var/log/mongodb
Стартуем сервис
/etc/init.d/mongodb start
Заходим в mongo
mongo
Welcome to the MongoDB shell.
For interactive help, type «help».
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
>
СУБД используем BSON — своеобразную интерпретацию JSON (JavaScript Object Notation)
Рассмотрим примеры и убедимся в том, что синтаксис очень схож.
JavaScript:
firstname = "Andrey";
lastName = "Ivanov";
Age = 25
BSON:
USER COLLECTION
{
_id:ObjectId("7678sd6fsdfbhw367er3"),
"firstName":"Andrey",
"lastName": "Ivanov"
"Age": 25,
"projects:["Project A", "Project B", "Project C"]"
"addresses": [
{
street: "123 Lunacharskogo st"
city: "Yekaterinburg",
state: "Sverdlovskaya oblast"
},
{
street: "4568 Sadovaya st"
city: "Moscow",
state: "Central region"
}
]
},
{
_id:ObjectId("7678s7826fsdfbhw367er3"),
"firstName":"Nikolay",
"lastName": "Petrov"
"Age": 54
};
Таким образом, заметно основное отличие реляционных БД.
Определенные элементы могут иметь признаки, которых другие элементы той же таблицы не имеют. В MySQL потребовалось бы создавать ряды и колонки для адреса и проектов, в Монго это не нужно.
>db.users.find()
Выводим всех пользователей, существующих в документах — элементах БД
Создадим пользователя admin и пользователей с ограниченными правами для MongoDB Linux
Переходим в каталог, в который установлен пакет
cd /opt/mongo
Заходим в консоль СУБД
mongo
Даем указание на необходимость использования базы
>use admin
switched to db admin
И создаем пользователя с правами userAdminAnyDatabase
db.createUser({user:"admin1",pwd:"1234",roles:["userAdminAnyDatabase"]})
Добавляем другого пользователя
Просматриваем существующие базы
show dbs
Инициализируем базу people (команда создает базу при первой к ней обращению, что аналогично CREATE DATABASE people в MySQL)
use people
Добавляем пользователя с правами на чтение и запись
db.createUser({user:"vasiliy",pwd:"1234",roles:["readWrite","dbAdmin"]})
Successfully added user: { "user" : "vasiliy", "roles" : [ "readWrite", "dbAdmin" ] }
Таким образом мы установили пакет, авторизовались в консоли, создали первые базы данных, а также пользователей, одного с безграничным доступом ко всем базам, другого с доступом на чтение и запись
В следующей статье цикла рассматриваются понятия «документа» и «коллекции» в MongoDB