пятница, 3 ноября 2017 г.

MongoDb основные операции

1. Скачивание и запуск

Прежде чем рассматривать основные операции в MongoDb - скачаем ее с офф сайта. Разархивируем скачанный файл и перейдем в папку bin. Больше всего нас интересуют файлы: mongod - сервер и mondo - клиентская консоль. В папке bin, создадим конфигурационный файл mongo.config. В него добавим: dbpath=путь_куда_создать_базу_данных. Теперь, запустим mongod, в консоли выполним: mongod.exe --config mongo.config. Для проверки запустим  файл mongo и выполним db.version(). В результате получим версию своей MongoDb.

2. Выбор БД и ее наполнение

Запустим консоль -  mongo.  Она работает на JavaScript. Существует несколько глобальных команд, например exit или help. Большинство команд выполняются применительно к каому-либо объекту, например, выполним db.stats(), получим информацию о текущей базе данных:
Текущая база - test, сменим ее, выполнив: use learn:
При создании первой коллекции произойдет и создание БД. Создим несколько коллекций:
db.employees.insert({name: 'Boris', hired: new Date(2002,2,13,7,47), skills: ['smart','happy'], age: 60, gender: 'm', salary: 6300}); 
db.employees.insert({name: 'Aurora', hired: new Date(2011, 0, 24, 13, 0), skills: ['smart', 'responsible'], age: 45, gender: 'f', salary: 4300}); 
db.employees.insert({name: 'Tom', hired: new Date(2003, 1, 9, 22, 10), skills: ['energetic', 'enthusiast'], age: 34, gender: 'm', salary: 18200}); 
db.employees.insert({name: 'Rod', hired: new Date(2009, 7, 18, 18, 44), skills: ['serious'], age: 57, gender: 'm', salary: 9900}); 
db.employees.insert({name: 'Solnara', hired: new Date(2005, 6, 4, 2, 1), skills:['serious', 'smart', 'serious'], age:55, gender:'f', salary:8000}); 
db.employees.insert({name:'Kenny', hired: new Date(2007, 6, 1, 10, 42), skills: ['responsible', 'independent'], age: 39, gender: 'm', salary: 3900}); 
db.employees.insert({name: 'Ralf', hired: new Date(2005, 4, 3, 0, 57), skills: ['serious', 'independent'], age: 21, gender: 'm', salary: 200}); 
db.employees.insert({name: 'Leia', hired: new Date(2001, 9, 8, 14, 53), skills: ['serious', 'easily trained'], age: 40, gender: 'f', salary: 3300}); 
db.employees.insert({name: 'Bill', hired: new Date(2007, 2, 1, 5, 3), skills: ['serious', 'easily trained'], age: 35, gender: 'm', salary: 5400}); 
db.employees.insert({name: 'Nimue', hired: new Date(2009, 11, 20, 16, 15), skills: ['responsible', 'smart'], age: 54, gender: 'f'}); 
db.employees.insert({name: 'Max', hired: new Date(2006, 6, 18, 18, 18), skills: ['responsible', 'easily trained'], age: 44, gender: 'm', salary: 16500}); 
 Каждая команда вставляет в коллекцию employees перевадаваемый аргумент, который представляет из себя обычный JSON. Выполним команду поиска: db.employees.find(). В результате получим все введенные данные. У них повилось поле _id. У каждой записи должно быть уникальное поле, можно его генерировать самому или позволить это делать MongoDb. Поле _id, по умолчанию индексируется.
Когда у нас есть данные, можно начать осваивать выборки. Поиск происходит, так же как и вставка, ипользуя связку: {поле:значение}, так де есть операторы: $lt, $lte, $gt, $gte и $ne, обозначающие "меньше", "меньше или равно", "больше", "больше или равно", и "не равно". Попробуем выбрать всех людей, кто младше 30:
db.employees.find({"age":{$lte:30}})
Теперь попробуем выбрать тех, что младже 30 или у кого з/п выше 10000:
db.employees.find({$or:[{"age":{$lte:30}},{"salary":{$gte:10000}}]})
Если хотим выбрать только серьезных работников:
db.employees.find({"skills":'serious'})

Комментариев нет :

Отправить комментарий