Публикации - Node.js

Базы данных - Mongo - Основы использования

По умолчанию, 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() – количество записей коллекции.

Количество комментариев: 0

Для того, чтобы оставить коментарий необходимо зарегистрироваться