По умолчанию, Mongo предлагает использовать базу данных test. Чтобы переключиться на другую базу, выполним команду use с именем базы данных:
use kurs
Причем, если эта база данных существует, происходит переключение на нее. Если не существует - создается.
Далее все запросы в которых присутствует объект db обращаются к выбранной базе.
Вставка, обновление, удаление и редактирование данных осуществляется в коллекции.
Insert
db.users.insert({username:’Иван’})
Кроме команды insert, данные можно вставлять командой save().
Т.к. это наше первое обращение к базе данных, то сперва создастся сама база, потом коллекция с данными. Поэтому при первом обращении к несуществующей базе возможно задержка ответа сервера.
Find
db.users.find()
Команде find можно также передать простой селектро запроса. Селектором запроса называется документ, с которым сравниваются все документы коллекции.
db.users.find({username:'Иван'})
Метод find поддерживает механизм точечной нутации.
Пусть потребуется найти всех пользователей, которым нравятся фильм “Белые Росы”.
Запрос будет выглядеть так:
db.users.find({"favorites.movies": "Белые Росы"})
Точка между favorites и movies означает, что нужно найти ключ favorites, который указывает на вложенный объект с ключом movies, a затем сравнить значение этого вложенного ключа с указанным в запросе. Этот запрос вернет оба документа.
Update
db.users.update({username: "Иван"}, {$set: {country: "Беларусь"}})
Для обновления нужно задать по меньшей мере два аргумента. Первый определяет, какие документы обновлять, второй - как следует модифицировать отобранные документы. Существует два способа модификации; в этом разделе мы рассмотрим направленную модификацию (targeted modification) - одну из наиболее интересных и уникальных особенностей MongoDB.
Значением может быть сложная структура данных формата JSON
db.users.update( {username: "Иван"}, {$set: {favorites: { cities: ["Минск", "Брест"], movies: ["Белое солнце пустыни", "Белые Росы"] } } )
Обновление данных без переопределения массива. Для этого можно воспользоваться командами push или addToSet.
db.users.update( {"favorites.movies": "Белые Росы"}, {$addToSet: {"favorites.movies": "Свадьба в Малиновке"}}, false, true )
Первый аргумент, селектор запроса, говорит, что нужно искать пользователей, для которых в списке movies есть фильм Белые Росы. Второй аргумент говорит, что нужно добавить в этот список фильм Свадьба в Малиновке с помощью оператора $addToSet.
Delete
Удалить запись страны можно так:
db.users.update({username: "Иван"}, ($unset: {country: 1}})
Remove
Если не задавать никаких параметров, то операция удаления remove удалит из коллекции все документы. Так, чтобы избавиться от коллекции fоо, нужно выполнить такую команду:
db.foo.remove()
Удаление по селектору запроса:
db.foo.remove({‘favorites.cities’: ‘Минск’})
Операция remove не уничтожает коллекцию, а лишь документы текущей коллекции. Чтобы уничтожить коллекцию вместе со всеми построенными над ней индексами, необходимо воспользоваться командой drop.
db.users.drop()
Конструкции JavaScript
Поддерживается автозавершение. Введите первые символы имени любого метода и дважды нажмите клавишу Tab. Будет выведен список всех методов с подходящими именами. Оболочка MongoDB одновременно является интерпретатором JavaScript. Следовательно, мы можем использовать конструкции языка JavaScript:
for(i=0; i<200000; i++) { db.numbers.save({num: i}); }
Для уточняющего поиска можно употреблять операторы gt и lt:
db.numbers.find( {num: {"$gt": 20, "$lt": 25 }})
Индексирование
Этой коллекции явно недостает индекса. Построить индекс по ключу num можно с помощью метода ensureIndex ().
db.numbers.ensurelndex({num: 1})
В данном случае документ {num: 1} говорит, что над коллекцией numbers нужно построить индекс по ключу num в порядке возрастания.
Убедиться в том, что индекс действительно построен, позволит метод getIndexes():
db.numbers.getIndexes()
Список команд:
show dbs – показать базы данных.
show collections – список коллекций текущей базы данных.
db.stats() – информация о базах данных.
db.test.stats() – информация о коллекциях текущей базы данных.
db.help – список методов для работы с базами.
db.test.help – список методов для работы с коллекциями.
db.test.count() – количество записей коллекции.