MongoDBНачало работы с MongoDB


замечания

  • Данные в мире начали сильно расти после того, как на рынок появилось мобильное приложение. Это огромное количество данных стало практически невозможно обрабатывать с традиционной реляционной базой данных - SQL. Базы данных NoSQL вводятся для обработки данных, в которых гораздо больше гибкости, чем переменное количество столбцов для каждой информации.
  • MongoDB является одной из ведущих баз данных NoSQL. Каждая коллекция содержит несколько документов JSON. Любая модель данных, которая может быть выражена в документе JSON, может быть легко сохранена в MongoDB.
  • MongoDB - это база данных сервера-клиента. Сервер обычно работает с двоичным файлом mongod а клиент работает с mongo .
  • В MongoDB до v.3.2 не существует операции объединения по различным философским и прагматическим причинам . Но Mongo shell поддерживает javascript, поэтому, если $ lookup недоступен, можно имитировать операции объединения с документами в javascript перед вставкой.
  • Чтобы запустить экземпляр в рабочей среде, настоятельно рекомендуется следовать Контрольному списку операций .

Версии

Версия Дата выхода
3,4 2016-11-29
3,2 2015-12-08
3.0 2015-03-03
2,6 2014-04-08
2,4 2013-03-19
2,2 2012-08-29
2,0 2011-09-12
1,8 2011-03-16
1,6 2010-08-31
1.4 2010-03-25
1.2 2009-12-10

Основные команды на оболочке монго

Показать все доступные базы данных:

show dbs;
 

Выберите конкретную базу данных для доступа, например mydb . Это создаст mydb если он еще не существует:

use mydb;
 

Показать все коллекции в базе данных (обязательно выберите один из них, см. Выше):

show collections; 
 

Показать все функции, которые можно использовать с базой данных:

db.mydb.help();
 

Чтобы проверить выбранную вами базу данных, используйте команду db

> db
mydb
 

db.dropDatabase() используется для удаления существующей базы данных.

db.dropDatabase()
 

Дополнительные условия

Условия использования SQL Условия MongoDB
База данных База данных
Таблица Коллекция
Entity / Row Документ
колонка Ключ / поле
Таблица Join Встроенные документы
Основной ключ Первичный ключ (по умолчанию ключ _id предоставлен самим mongodb)

Выполнение файла JavaScript в MongoDB

./mongo localhost:27017/mydb myjsfile.js
 

Объяснение: Эта операция выполняет myjsfile.js скрипт в mongo оболочки , который подключается к mydb базе данных на mongod например , доступной через localhost интерфейс на порт 27017 . localhost:27017 не является обязательным, так как используется порт mongodb по умолчанию.

Кроме того, вы можете запустить .js файл из консоли mongo .

>load("myjsfile.js")
 

Привет, мир

После процесса установки следующие строки должны быть введены в оболочку mongo (клиентский терминал).

> db.world.insert({ "speech" : "Hello World!" });
> cur = db.world.find();x=cur.next();print(x["speech"]);
 

Привет, мир!

Объяснение:

  • В первой строке мы вставили парный документ { key : value } в test базу данных по умолчанию и в коллекции с именем world .
  • Во второй строке мы извлекаем данные, которые мы только что вставили. Полученные данные сохраняются в переменной javascript с именем cur . Затем функцией next() мы извлекли первый и единственный документ и сохранили его в другой переменной js с именем x . Затем напечатайте значение документа, содержащего ключ.

Монтаж

Чтобы установить MongoDB, выполните следующие действия:

  • Для Mac OS:

    • Существует два варианта для Mac OS: ручная установка или доморощенный .
    • Установка с помощью доморощенного :
      • Введите в терминал следующую команду:
        $ brew install mongodb
         
    • Установка вручную:
      • Загрузите последнюю версию здесь . Убедитесь, что вы загружаете соответствующий файл, специально проверьте, является ли ваш тип операционной системы 32-разрядной или 64-разрядной. Загруженный файл находится в формате tgz .

      • Перейдите в каталог, в который загружен этот файл. Затем введите следующую команду:

        $ tar xvf mongodb-osx-xyz.tgz
         

        Вместо xyz будет отображаться информация о версии и системе. Выделенная папка будет иметь то же имя, что и файл tgz . Внутри папки их будет подпапка с именем bin которая будет содержать несколько двоичных файлов вместе с mongod и mongo .

      • По умолчанию сервер хранит данные в папке /data/db . Итак, мы должны создать этот каталог, а затем запустить сервер, имеющий следующие команды:

        $ sudo bash
        # mkdir -p /data/db
        # chmod 777 /data
        # chmod 777 /data/db
        # exit
         
      • Чтобы запустить сервер, из текущего местоположения должна быть указана следующая команда:

        $ ./mongod
         

        Он запускает сервер по порту 27017 по умолчанию.

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

        $ ./mongo
         

        По умолчанию он подключается к test базе данных. Если вы видите такую ​​строку, как connecting to: test . Затем вы успешно установили MongoDB. Congrats! Теперь вы можете проверить Hello World, чтобы быть более уверенным.

  • Для Windows:

    • Загрузите последнюю версию здесь . Убедитесь, что вы загружаете соответствующий файл, специально проверьте, является ли ваш тип операционной системы 32-разрядной или 64-разрядной.

    • Загруженный двоичный файл имеет расширение exe . Запустить его. Появится приглашение мастера установки.

    • Нажмите « Далее» .

    • Примите лицензионное соглашение и нажмите « Далее» .

    • Выберите « Полная установка».

    • Нажмите « Установить» . Это может вызвать окно для запроса разрешения администратора. Нажмите « Да» .

    • После установки нажмите « Готово» .

    • Теперь mongodb установлен на пути C:/Program Files/MongoDB/Server/3.2/bin . Вместо версии 3.2 может быть какая-то другая версия для вашего дела. Имя пути будет изменено соответствующим образом.

    • bin содержат несколько двоичных файлов вместе с mongod и mongo . Чтобы запустить его из другой папки, вы можете добавить путь в системный путь. Сделать это:

      • Щелкните правой кнопкой мыши Мой компьютер и выберите « Свойства» .
      • Нажмите « Расширенные настройки системы» на левой панели.
      • Нажмите « Переменные среды» ... на вкладке « Дополнительно ».
      • Выберите « Путь» в разделе « Системные переменные » и нажмите « Изменить ...» .
      • Перед Windows 10 добавьте точку с запятой и вставьте путь, указанный выше. В Windows 10 есть кнопка « Создать» , чтобы добавить новый путь.
      • Нажмите OK, чтобы сохранить изменения.
    • Теперь создайте папку с именем data имеющую подпапку с именем db где вы хотите запустить сервер.

    • Начните с командной строки. Либо изменив путь в cmd, либо щелкнув по открытому окну команды Open, который будет виден после щелчка правой кнопкой мыши на пустом пространстве графического интерфейса папки, нажимая клавиши Shift и Ctrl вместе.

    • Напишите команду для запуска сервера:

      > mongod
       

      Он запускает сервер по порту 27017 по умолчанию.

    • Откройте другую командную строку и введите следующую команду для запуска клиента:

      > mongo
       
    • По умолчанию он подключается к test базе данных. Если вы видите такую ​​строку, как connecting to: test . Затем вы успешно установили MongoDB. Congrats! Теперь вы можете проверить Hello World, чтобы быть более уверенным.

  • Для Linux: почти такая же, как Mac OS, за исключением некоторой эквивалентной команды.

    • Для дистрибутивов на основе Debian (с использованием apt-get ):
      • Импортируйте ключ репозитория MongoDB.

        $ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
        gpg: Total number processed: 1\
        gpg:               imported: 1  (RSA: 1)
         
      • Добавить репозиторий в список пакетов на Ubuntu 16.04 .

        $ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
         
      • на Ubuntu 14.04 .

        $ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
         
      • Обновить список пакетов.

        $ sudo apt-get update
         
      • Установите MongoDB.

        $ sudo apt-get install mongodb-org
         
    • Для дистрибутивов на основе Red Hat (с использованием yum ):
      • используйте текстовый редактор, который вы предпочитаете.

        $ vi /etc/yum.repos.d/mongodb-org-3.4.repo

      • Вставить следующий текст.

        [mongodb-org-3.4]
        name=MongoDB Repository
        baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
        gpgcheck=1
        enabled=1
        gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
         
      • Обновить список пакетов.

        $ sudo yum update
         
      • Установка MongoDB

        $ sudo yum install mongodb-org
         

Выполнение вывода поиска, читаемого в оболочке

Мы добавляем три записи в наш тестовый сбор:

> db.test.insert({"key":"value1","key2":"Val2","key3":"val3"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value2","key2":"Val21","key3":"val31"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value3","key2":"Val22","key3":"val33"})
WriteResult({ "nInserted" : 1 })
 

Если мы увидим их через find, они будут выглядеть очень уродливо.

> db.test.find()
{ "_id" : ObjectId("5790c5cecae25b3d38c3c7ae"), "key" : "value1", "key2" : "Val2
", "key3" : "val3" }
{ "_id" : ObjectId("5790c5d9cae25b3d38c3c7af"), "key" : "value2", "key2" : "Val2
1", "key3" : "val31" }
{ "_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"), "key" : "value3", "key2" : "Val2
2", "key3" : "val33" }
 

Чтобы обойти это и сделать их читаемыми, используйте функцию pretty ().

> db.test.find().pretty()
{
        "_id" : ObjectId("5790c5cecae25b3d38c3c7ae"),
        "key" : "value1",
        "key2" : "Val2",
        "key3" : "val3"
}
{
        "_id" : ObjectId("5790c5d9cae25b3d38c3c7af"),
        "key" : "value2",
        "key2" : "Val21",
        "key3" : "val31"
}
{
        "_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"),
        "key" : "value3",
        "key2" : "Val22",
        "key3" : "val33"
}
>