2. Обо мне
Владимир Кривенко
Инструменты: Selenium, Coded UI Test
Один из основателей:Пишу блог :
В тестировании 6+ лет
Автор портала:
Автоматизацией занимаюсь 3+ года
Это я:
Работаю:
Head of QA в Paralect
Опыт:
3. План
• Введение в MongoDB
• Особенности при тестировании
• Рассмотрим в деле
• Инструменты
4. Определение
Документо-ориентированная база данных с
открытым исходным кодом, не требующая
описания схемы таблиц. Написана на языке
C++. Название происходит «humongous —
огромный. Управляет наборами JSON-
подобных документов, хранимых в двоичном
виде в формате BSON.
5. Основные возможности
• Документо-ориентированное хранилище, нет схем
данных
• Гибкий язык (JSON) для формирования запросов
• Полная поддержка индексов
• Профилирование запросов
• Эффективное хранение данных больших объемов
• Репликация и поддержка отказоустойчивости
• Профилирование, административный интерфейс,
серверные функции, Map/Reduce
6. Термины MongoDB vs РСУБД
• База данных – База данных
• Таблица – Коллекция
• Индекс – Индекс
• Строка – Документ
• Join – Embedding and Linking
• Primary key -_id field
• Group by – Aggregation
13. Примеры. Запросы
SQL:
SELECT * FROM students
MongoDB:
> db.students.find()
SQL:
SELECT * FROM students WHERE SchoolId =’5179b17c’
MongoDB:
> db.students.find({"SchoolId":"51710cb990bd7515ec79b17c"})
14. Примеры. Запросы
SQL:
SELECT id, FullName FROM students WHERE SchoolId = 517115ec79b17c’
MongoDB:
> db.students.find({"SchoolId":"517115ec79b17c"},{_id:1, FullName:2 })
15. Операторы условий
• $gt — больше, чем
• $lt — меньше, чем
• $gte — больше, чем или равно
• $lte — меньше, чем или равно
> db.students.find({Age:{$lte:18}})
> db.students.find({Age:{$gt:18}})
16. Операторы
• $exists – используется для проверки наличия или
отсутствия поля.
• $type – вернет все поля с заданным типом.
• $where – передача JS
• $in & $nin - выборка по конкретным значениям
> db.students.find({referrals: {$exists: false}})
> db.teachers.find({ student_in_class: { $in : [20, 30, 40]}});
19. Пример. Обновление
SQL:
UPDATE students SET fname = “Johnny” WHERE lname = “Jacobs”
MongoDB:
> db.students.update({fname:” Johnny”}, {$set:{lname:” Jacobs”}})
20. Удаление данных
SQL:
DELETE FROM students WHERE ID=1
DELETE FROM students WHERE fname=”Johnny”
MongoDB:
> db.students.remove ({_id:ObjectID(“1”)})
> db.students.remove({fname:”Johnny”})
25. MongoVUE
• Лог shell – команд
• «ключ:значение» для поиска
• Ограниченная бесплатная версия
Примеры поиска:
{"Title" : "test"}
{"username": new RegExp("^a")} или то же самое
{"Title":/se/}