MongoDB — работа в консоли

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

Для начала работы, необходимо запустить сервер mongod и консоль mongo. Стоит обратить внимание, что консоль работает на JavaScript!

Для начала введём команду use students. Если база students еще не существует, то она создастся при создании первой коллекции. Теперь мы может просмотреть все коллекции, существующие в данной базе, для этого введём команду db.getCollectionNames(). В ответ мы получим пустой массив, так как у нас еще нет коллекций.

Чтобы создать новую коллекцию, не обязательно создавать её явно, для этого будет достаточно просто вставить в её новый документ, воспользовавшись командой insert.

Мы создадим новую коллекцию для работы со студентами, которая будет содержать их имя, фамилию, возраст и хобби и заполним её.

db.students.insert({firstName: "Василий", lastName: "Пупкин", age: 19, hobby: ["футбол", "хоккей"] })
db.students.insert({firstName: "Геннадий", lastName: "Рыжов", age: 23, hobby: ["литература", "программирование", "футбол"] })
db.students.insert({firstName: "Светлана", lastName: "Иванова", age: 19, hobby: ["фильмы", "клубы"] })
db.students.insert({firstName: "Екатерина", lastName: "Сидорова", age: 21, hobby: ["литература", "математика", "фильмы"] })
db.students.insert({firstName: "Анатолий", lastName: "Петров", age: 24, hobby: ["литература", "дневной сон"] })
db.students.insert({firstName: "Игорь", lastName: "Карасев", age: 26 })

Для того, чтобы получить список доступных команд можно воспользоваться командой help. В зависимости от объекта, к какому она будет применена, мы получим список доступных команд, так команда db.help() выведет список доступных команд для базы данных, а db.students.help() — список команд для коллекции students.

Мы уже заполнили нашу коллекцию, для того чтобы увидеть все записи коллекции, воспользуемся командой find.

db.students.find()

Для того чтобы выводить каждый документ в многострочном режиме, добавим команду pretty.

db.students.find().pretty()

Как вы уже поняли, команда find поможет нам найти необходимый документ. Синтаксис {поле: значение} работает как логическое И, если вам нужно логическое ИЛИ следует воспользоваться модификатором $or.

db.students.find({age: 19}) //выведет всех студентов, чей возраст равен 19
db.students.find({age: 19, firstName: 'Василий'})  //студенты с именем Василий и возрастом 19.

Есть специальные операторы:

  • $lt— меньше;
  • $lte —меньше либо равно;
  • $gt — больше;
  • $gte — больше либо равно;
  • $ne — не равно;
db.students.find({age: {$gte:19, $lte:21}}) //список студентов возрастом от 19 до 21 года включительно

Оператор $exists используется для проверки наличия или отсутствия поля.

db.students.find({hobby: {$exists:false }}) //список студентов, у которых нет хобби.

Для того чтобы отсортировать выводимые значения необходимо воспользоваться функцией sort.

db.students.find().sort({age: -1}) //-1 сортирует по убыванию 1 – по возростанию

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

db.students.update({firstName: 'Василий'}, {firstName: 'Вася'})

Обратите внимание, в отличие от SQL-команды UPDATE в MongoDB update используется для ПОЛНОЙ замены оригинала, в некоторых случаях это может быть очень полезно, но если вам необходимо только изменить значения некоторых полей, то следует воспользоваться модификатором $set.

db.students.update({firstName: 'Светлана'}, {$set : {firstName: 'Света', age: 27}})

Существует еще много модификаторов, например:

  • $inc — позволяет изменить поле на необходимую величину
  • $push — добавляет новые значения

Для того чтобы найти нужную вам команду, воспользуйтесь командой help, или официальной документацией по MongoDB: http://docs.mongodb.org/manual/tutorial/

Комментарии (1) -

Костя 15.12.2016 16:49:26

Спасибо за труд!
Именно то что искал + очень понятно и поэтапно, много скринов что тоже плюс.

Добавить комментарий