MongoDB

Материал из support.qbpro.ru

Официальный драйвер

Тезисы из The Little MongoDB Book

  • Основное различие в том, что реляционные базы данных определяют «колонки» на уровне «таблицы», в то время как документ-ориентированные базы данных определяют «поля» на уровне «документа». Это значит, что любой документ внутри коллекции может иметь свой собственный уникальный набор полей. В этом смысле коллекция «глупее» чем таблица, тогда как документ имеет намного больше информации, чем строка.

Краткие инструкции

Как создать базу данных в MongoDB?

MongoDB не предоставляет команд для создания “баз данных”, но они и не нужны. Не нужны потому, что MongoDB создаст базу и коллекцию автоматически, при первом сохранении данных в них.

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

Список баз данных

Воспользуемся командой show dbs для отображения списка баз данных:

MongoDB shell version: 1.8.1
connecting to: test
> show dbs
admin   0.03125GB
local   (empty)

У нас есть всего две базы: “admin” и “local”.

Задаем название базы данных

Воспользуемся командой "use new-databasename" для выбора базы данных (можно указать несуществующее имя). Однако, MongoDB не создаст базу до тех пор, пока мы не начнем вносить в нее данные.

> use mkyongdb
switched to db mkyongdb
> show dbs
admin 0.03125GB
local (empty)

База “mkyongdb” еще не создана.

Сохраняем

Укажем коллекцию “users” и запишем в нее документ:

> db.users.save( {username:"mkyong"} )
> db.users.find()
{ "_id" : ObjectId("4dbac7bfea37068bd0987573"), "username" : "mkyong" }
>
> show dbs
admin 0.03125GB
local (empty)
mkyongdb 0.03125GB

Здесь сказано: сохранить документ ‘{username:”mkyong”}’ в коллекцию ‘user’. В процессе выполнения этой команды MongoDB автоматически создаст коллекцию ‘user’ и базу данных “mkyongdb”.