# БИБЛИОТЕКА Курсы Redmine Системная инженерия Стейкхолдеры Управление Критическая цепь Linux Информация Социальные связи Саморазвитие Логика, интеллект Политэкономия Сумма технологии АНАЛИТИКА Ресурсы ПО для аналитики Бизнес-процесс Требования Уровни и типы Источники Нотации Архитектура РАЗРАБОТКА Ресурсы Цикл разработки ПО Continuous Integration OOP - базис Frontend HTTP/REST Apache web-server Регулярные выражения git Javascript Perl Полезности в Windows ТЕСТИРОВАНИЕ Книги и ссылки QA и QC Цикл тестирования 1 Тест-анализ 2 Тест план 3 Тест-дизайн и покрытие Уровни тестирования Виды тестирования Баг-репорт Шаблоны документов XPATH Безопасность Нагрузочное Android Автоматизация Selenium WebDriver Генератор ИНН БАЗЫ ДАННЫХ SQL MongoDB
Эта страница:
- Почерпнуть мудрость - Общая структура MongoDB и в сравнении с SQL - Установка версии 2.6 на Linux Ubuntu/Mint - Установка версии 3.2 на Linux Ubuntu/Mint - Настройка - Общий обзор команд для mongodb shell - Поиск нужного через mongodb shell:
Другие разделы:
# АНАЛИТИКА MONGO DB SQL РАЗРАБОТКА БИБЛИОТЕКА ТЕСТИРОВАНИЕ
MongoDB
Почерпнуть мудрость
Общая структура MongoDB и в сравнении с SQL
sql-nosql difference Структура MongoDB mongodb database structure Выстраивание отношений между полями и документами relations between fields and documents
Установка версии 2.6 на Linux Ubuntu/Mint
  • Ставится просто через репозиторий системы:sudo apt-get install mongodb
Установка версии 3.2 на Linux Ubuntu/Mint
  • Импортировать публичный ключ, используемый системой управления пакетами: sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
  • Создать файл-список MongoDB: 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
Настройка
  • Посмотреть - какие порты Монга слушает на локалкеsudo lsof -iTCP -sTCP:LISTEN | grep mongo
  • Соединение с удалённой базой через консольmongo [IP]
  • Настройки для версии 2.6+ хранятся в файле /etc/mongodb.conf
  • Настройки для версии 3.0+ хранятся в файле /etc/mongod.conf
  • Init-скрипт версии 3.0+ /etc/init.d/mongod может быть использован для того чтобы приказать демону процесса выполнить stop, start, restart
Общий обзор команд для mongodb shell
показать существующие базы show dbs
Заюзать базу use [dbase name]
показать существующие коллекции в базе show collections
добавить документ в коллекцию unicorn db.unicorns.insert({name: 'Leto', gender: 'm', home: 'Arrakeen', worm: false}) db.unicorns.insert({name: 'Aurora', dob: new Date(1991, 0, 24, 13, 0), loves: ['carrot', 'grape'], weight: 450, gender: 'f', vampires: 43})
удаление всех документов в коллекции db.unicorns.remove()
Дропнуть базу db.dropDatabase()
Поиск нужного через mongodb shell:
имя индекса, базы данных и коллекции, для которой индекс был создан, а также полей, которые включены в него. db.system.indexes.find()
найти всё подряд И ВЫВЕСТИ ВСЁ ЭТО КРАСИВО с переносом строк, а не кучей db.[pathtocollection].find().pretty()
найти со значением полей содержащих "snacks", i - case insensitive db.[pathtocollection].find({ type: /snacks/i })
найти со значением полей type равному "snacks" db.[pathtocollection].find({ type: "snacks" })
найти со значением полей type равному "snacks" и вывести с форматированием db.[pathtocollection].find({ type: "snacks" }).pretty()
найти все документы, для которых вывести только поля name и gender (_id включается всегда по-умолчанию, поэтому его надо отключать отдельно) db.[pathtocollection].find(null,{name: 1, _id:0, gender:1})
найти все документы и вывести значения всех их полей, где отсутствует (false) поле vampires db.[pathtocollection].find({vampires: {$exists: false}})
$gt Matches values that are greater than the value specified in the query.
$gte Matches values that are greater than or equal to the value specified in the query.
$in Matches any of the values that exist in an array specified in the query.
$lt Matches values that are less than the value specified in the query.
$lte Matches values that are less than or equal to the value specified in the query.
$ne Matches all values that are not equal to the value specified in the query.
$nin Matches values that do not exist in an array specified to the query.
db.[pathtocollection].find({ type: 'food', price: {$lt: 9.95}})
найти документы с полем type равным food ИЛИ snacks ($in вместо $or выгоднее использовать если поиск идёт внутри поля) db.DBNAME.find( { type: { $in: [ 'food', 'snacks' ] } } )
найти всех самок единорогов, которые или любят яблоки, или любят апельсины, или весят менее 500 фунтов. db.DBNAME.find({gender: 'f', $or: [{loves: 'apple'}, {loves: 'orange'}, {weight: {$lt: 500}}]})